Вопросы по теме 'computation-expression'

Выражения пользовательских вычислений в F #
Я играл с монадами на F # (также известными как выражения вычислений) и написал эту простую монаду Identity: type Identity<'a> = | Identity of 'a type IdentityBuilder() = member x.Bind (Identity v) f = f(v) member x.Return v =...
990 просмотров
schedule 16.11.2023

Проблема с вычислительным рабочим процессом
пытаясь следовать примеру в книге эксперта f # и имея проблему с рабочими процессами... код выглядит следующим образом: type Attempt<'a> = option<'a> let succeed x = Some (x) let fail = None let bind p rest = match p...
248 просмотров
schedule 26.06.2023

Какова роль циклов while в вычислительных выражениях F#?
Если вы определяете метод While объекта-строителя, вы можете использовать while -циклы в своем выражения вычислений . Сигнатура метода While : member b.While (predicate:unit->bool, body:M<'a>) : M<'a> Для сравнения,...
768 просмотров
schedule 13.03.2024

как мне исправить эти ошибки, сгенерированные моим вычислительным выражением, использующим мой пользовательский построитель рабочих процессов?
Из документации MSDN я понимаю, что если Run будет реализован, он будет называться автоматически в конце вычислительного выражения. В нем говорится, что: builder.Run(builder.Delay(fun () -> {| cexpr |})) будет сгенерировано для...
168 просмотров
schedule 05.03.2022

Объедините асинхронный F # и, возможно, вычислительное выражение
Скажем, я хочу вернуть Option в рабочем процессе async : let run = async { let! x = doAsyncThing let! y = doNextAsyncThing x match y with | None -> return None | Some z -> return Some <| f...
2965 просмотров

Выражение вычисления F # для вложенных логических тестов?
Я думаю, что у меня достаточно понимания монад (рабочих процессов) F#, и я вижу несколько мест в своем коде, где их реализация имеет смысл. Например, у меня есть функция с несколькими вложенными if/then, т.е. функция должна продолжаться только до...
544 просмотров
schedule 29.03.2022

Вычислительные выражения для программиста на Haskell
Я хочу изучить F #, но одна вещь, которая меня смущает, - это синтаксис выражения вычисления (do-notation ??) и дешугаризация. В haskell у вас есть очень простой класс типов Monad и правила для дешугаризации do-нотации в bind и return. В...
1162 просмотров
schedule 24.09.2022

Выражение вычислений с отслеживанием состояния F#
В настоящее время я изучаю F # и натыкаюсь на несколько камней преткновения; Я думаю, что многое из этого заключается в том, чтобы научиться мыслить функционально. Одна из вещей, которую я изучаю в данный момент, — это вычислительные выражения, и...
512 просмотров

механика пусть! в вычислительных выражениях
В настоящее время я работаю над серией вычислительных выражений на потрясающем веб-сайте fsharpforfunandprofit, и у меня есть вопрос относительно урока 4 «обернутый тип» серии вычислений. Я попытался прочитать немного дальше, но есть одна важная...
160 просмотров
schedule 17.05.2022

Выражения вычислений против аппликативных функторов, а что нет
Не совсем уверен, что заголовок описывает это нормально, но у меня есть примерно следующий код: пакет.зависимости: source https://www.nuget.org/api/v2 nuget fsharpx.extras nuget mongodb.driver некоторые.fsx: #r...
269 просмотров
schedule 23.12.2022

Как реализовать List Monad (вычислительное выражение) с условием?
Я пытаюсь понять, как использовать вычислительные выражения F#, и это, безусловно, меня озадачивает. Следующий пример имеет для меня некоторый смысл. type ListMonad() = member o.Bind( (m:'a list), (f: 'a -> 'b list) ) = List.collect f m...
393 просмотров
schedule 02.05.2023

Как я могу вызвать привязку к вычислительному выражению без ключевого слова let?
Скажем, у меня есть это: MyComputationExpression { let! addr = Salesrecord.Address let! name = Salesrecord.Name return (name + " " + addr) } Есть ли способ «развернуть» (вызвать метод bind ) адрес и имя на лету? Вроде как:...
55 просмотров
schedule 12.07.2023

Когда внедрять нулевой элемент в Computation Expression?
Почему я не могу использовать pattern matching function в вычислительных выражениях без реализации члена Zero ? Например, может ли кто-нибудь объяснить, почему он позволяет разрешать pattern matching expression , но не pattern matching...
69 просмотров

Превратить список результатов в результат списка внутри выражения вычисления?
У меня есть Result<'T, 'E> list , который я хотел бы превратить в сингл Result<'T list, 'E> , следуя этим правилам: Если какой-либо Result является Error , тогда результат должен быть Error Если результат - Error , он должен...
1297 просмотров
schedule 31.05.2022