Описание тега computation-expression
Выражения вычислений в F# - это метод написания вычислений, которые можно комбинировать с использованием конструкций и привязок потока управления.
1
ответ
(Как) я могу сделать эту монадную привязку хвостовой рекурсивной?
У меня есть эта монада под названием Desync - [<AutoOpen>] module DesyncModule = /// The Desync monad. Allows the user to define in a sequential style an operation that spans /// across a bounded number of events. Span is bounded because I've …
03 янв '15 в 13:35
1
ответ
Как правильно отбросить результат (монадического) вычисления в F#
В Хаскеле я могу написать: token: Parser a -> Parser a token p = do space v <- p space return v В F# я зашел так далеко: let token = compose { let! _ = space let! v = parser let! _ = space return v } Другими словами, я должен представить это н…
20 ноя '13 в 21:09
1
ответ
Выражение запроса самостоятельное соединение
Как я могу изменить это выражение запроса join пункт, чтобы я не должен был обернуть parent.ID в option просто присоединиться к кандидату child.ParentID который может быть None? query { for parent in d.People do join child in d.People on (Some paren…
19 сен '14 в 18:15
1
ответ
Вернуть запущенную асинхронную<T> в F# функцию из вызова неасинхронной Func<T> из C#?
Допустим, я хочу вызвать из F# эту функцию C#: public static class Foo { public Bar Baz() { ... } } Проблема в том, что эта функция сильно загружает процессор, и я не хочу блокировать ее. К сожалению, библиотека C# не имеет Task<Bar> BazAsync(…
24 мар '18 в 10:55
0
ответов
Ошибка при распространении вычислительного выражения монады
Я пытаюсь написать вычислительное выражение, которое эффективно направляет предупреждения и ошибки из всех зависимых let! аргументы и объединяет их с результатом данного расчета. Проблема в получении списка ошибок от всех используемых let! объединит…
03 ноя '14 в 05:34
2
ответа
Нужно ли использовать еще ветку в асинхронных выражениях?
Я хочу написать следующий код: let someAsync () = async { if 1 > 2 then return true // Error "this expression is expected to have type unit ..." // I want to place much code here return false } F# почему-то считает, что мне нужно написать так: le…
07 апр '14 в 07:22
1
ответ
Составление цитируемых функций с использованием выражений вычислений
Я оглянулся и изо всех сил пытался получить ответ на это; Я уверен, что есть очевидный ответ, но я просто не могу его найти; или я столкнулся с ограничением цитат, которое не могу передать при использовании с выражениями вычислений. По сути, я хочу …
15 сен '15 в 12:06
0
ответов
Вычислительные выражения F# и параллельная библиотека задач
В последнее время я много работал с F#, а недавно написал небольшое приложение MVC с веб-проектом на C# и библиотекой классов F#, последняя из которых содержала основную часть кода. Я хотел использовать функцию асинхронных контроллеров более поздних…
02 июн '14 в 11:18
1
ответ
Как выражения последовательности и полиморфная рекурсия играют вместе?
Этот проект действительно является источником вопросов для меня. Я уже узнал о полиморфной рекурсии и понимаю, почему это особый случай, и поэтому F# требует полных аннотаций типа. Для обычных функций мне, возможно, понадобится немного поиграть, но…
14 ноя '16 в 12:34
1
ответ
Проблема с выходом во вложенном рабочем процессе
Я пытаюсь написать свой собственный конструктор Either как часть моего квеста по изучению выражений вычислений в F#, но я столкнулся с проблемой, которая, по моему мнению, связана с методом Combine. Мой код до сих пор: type Result<'a> = | Fail…
13 ноя '17 в 20:23
0
ответов
Как реализовать вычислительное выражение с помощью пользовательских операций и выполнения операторов
Я пытаюсь реализовать diagnostics Вычислительное выражение для регистрации действий и и событий с использованием System.Diagnostics.DiagnosticSource NuGet. Но я не могу понять, как мое вычислительное выражение может выполнять регулярные операторы ме…
24 фев '19 в 16:32
1
ответ
Как определить Yield и For для пользовательской операции вычисления в F#
Я работаю над DSL для своего приложения, и вот как я определил тип вычисления и конструктор: // expression type type Action<'a,'b> = Action of ('a -> Async<'b>) let runAction (Action r) ctx = r ctx let returnF a = Action (fun _ -> …
26 апр '14 в 07:30
1
ответ
F# переписать вычислительное выражение
Я изучаю продолжения, потому что я хочу использовать интересные сопрограммы... в любом случае, я хочу лучше понять одну реализацию, которую я нашел. Для этого я хочу переписать реализацию без использования вычислительного выражения (продолжение Mona…
17 дек '18 в 17:52
2
ответа
Расширенные выражения вычислений без for..in..do
Под расширенными выражениями вычислений я подразумеваю выражения вычислений с пользовательскими ключевыми словами, определенными с помощью атрибута CustomOperation. Читая о расширенных выражениях вычислений, я сталкиваюсь с очень классным IL DSL от…
01 янв '13 в 12:37
2
ответа
Выражения запросов F# дают
Я учусь F# и сейчас я читаю о выражениях вычислений и выражениях запросов для использования с поставщиками типов SQL. Я выполнял несколько простых задач, и в какой-то момент мне нужно было объединить (Union) 2 запроса, моя первая мысль после прочтен…
19 окт '15 в 16:13
4
ответа
Избегать пирамиды гибели с помощью вычислительных выражений?
Я сталкивался с этим вопросом о "пирамиде гибели" в F#. Принятый ответ включает использование активных шаблонов, однако, насколько я понимаю, его также можно решить с помощью выражений вычислений. Как я могу удалить "пирамиду гибели" из этого кода с…
22 ноя '17 в 11:16
1
ответ
Механика дай! в выражениях вычислений
В настоящее время я работаю над серией выражений для вычислений на потрясающем веб-сайте fsharpforfunandprofit, и у меня возник вопрос относительно урока 4 "Обернутый тип" серии вычислений. Я попытался прочитать немного дальше, но есть важное поняти…
19 май '15 в 09:21
4
ответа
Превратить список Результата в Результат списка внутри выражения вычисления?
У меня есть Result<'T, 'E> list что я хотел бы превратить в единый Result<'T list, 'E> следуя этим правилам: Если есть Result является Error тогда результат должен быть Error Если результат Error это должно быть первым Error в списке Есл…
10 июн '18 в 23:58
2
ответа
Что не так с моим логическим выражением?
Ниже выражения вычисления, которое я пытаюсь реализовать. Значение обернуто в кортеж, где второй элемент кортежа представляет собой список строк, представляющих записи журнала по пути. type LoggerBuilder() = member this.Bind(vl : 'a * string list, f…
17 мар '14 в 08:59
1
ответ
Рефакторинг алгоритм как выражение вычисления?
Этот вопрос содержит спойлеры для тех, кто не выполнил задачу 61 Project Euler. Я написал ответ на проблему, которая была обязательной, поэтому я решил сделать более общий и функциональный ответ. Мне это удалось, но сейчас я пытаюсь выяснить, как из…
05 ноя '17 в 08:08