FSharpPlus - это базовая библиотека для F#
1 ответ

Реализация конечного кодирования без тегов в F# с SRTP

Я хотел бы преобразовать мою версию F# OOP Tagless Final в типичный подход FP, и я думаю использовать статически разрешенные параметры типа классов классов из ОО. Что я сделал open System open FSharpPlus type UserName = string type DataResult<'t&…
02 апр '19 в 21:20
1 ответ

Составить пересечение мира асинхронных функций с привязкой

У меня есть образец железнодорожного трубопровода, который хорошо работает: open FSharpPlus let funA n = if n < 10 then Ok n else Error "not less than 10" let funB n = if n < 5 then Ok (n, n * 2) else Error "not less than 5" let funC n = // in…
24 июл '19 в 23:13
0 ответов

FSharpPlus, похоже, не имеет общей функции `tail`

Пока есть tryHead а также head, как в Seq.tryHead а также Seq.head, нет соответствующего tail функция, как в Seq.tail, в FSharpPlusбиблиотека общих функций. Я что-то упускаю или это недосмотр? Также может быть полезно иметь общий Empty значение или …
27 авг '20 в 12:02
1 ответ

FSharpPlus: блоки fsi, когда я пытаюсь объединить два трансформатора

Когда я пытаюсь объединить эти два трансформатора, fsi блокируется без каких-либо предупреждений или сообщений об ошибках. open FSharpPlus open FSharpPlus.Data type MyError = | Err of string let f : WriterT<ResultT<Async<Result<_, MyErro…
03 дек '19 в 20:46
1 ответ

Привязка вложенных монад в F#

Пытаюсь обернуть мою мягкую голову монад и привязку Возьмите этот фрагмент, например, просто как учебное упражнение. open FSharpPlus open FSharpPlus.Data let lowerBounds i = if i > 10 then Ok i else Error "i was <= 10" let upperBounds i = if i…
12 июн '20 в 12:48
1 ответ

Пример преобразователя монад для чтения с помощью FSharpPlus

Я пытаюсь понять читателя преобразователя монад. Я использую FSharpPlus и пытаюсь скомпилировать следующий образец, который сначала читает что-то из среды чтения, затем выполняет некоторые асинхронные вычисления и, наконец, объединяет оба результата…
02 окт '20 в 11:55
1 ответ

Thoth.Json.Net - Декодер как функтор, возможно ли это?

Я нашел эту превосходную библиотеку JSON для F#, она вдохновлена ​​Json.Decode от Elm и определяет базовый Decoder введите вот так: type Decoder<'T> = string -> obj -> Result<'T, DecoderError> (Вот) Есть такие функции, как Decode.m…
16 ноя '20 в 17:32
3 ответа

Обозначение стрелки «proc» в F#

Есть ли реализация обозначения «proc» для стрелок в F #? В Haskell это выглядит так: mean2 :: Fractional a => Circuit a a mean2 = proc value -> do t <- total -< value n <- total -< 1 returnA -< t / n Обратите внимание proc ключе…
21 апр '21 в 21:31
1 ответ

Есть ли название для этого шаблона «функция с отслеживанием состояния с результатом»? Абстракция для этого в FSharpPlus?

У меня есть функция типа 'state -> 'event -> Result<'state * 'result, 'error>. У меня есть начало 'state а также 'event list. Я хотел бы свернуть события и получить окончательное состояние и список результатов, если все сгибы были в поря…
14 июн '21 в 05:41
1 ответ

Как реализовать собственный экземпляр Monad, особенно для IObservable в FSharpPlus?

FSharpPlus предоставил монаду CE и несколько преобразователей монад, и я хочу использовать ReaderT<'a, IObservable<'b>> с FSharpPlus's monad CE, что требует определения экземпляра монады. Пример желаемого кода: let test (x: IObservable&l…
30 июн '21 в 07:12
2 ответа

Как использовать FSharpPlus.Lens для указания индекса списка?

Пример кода документации определяет _pageNumberс использованием List._item, но я не могу найти пример его использования. Я попробовал следующий код, но он выдал ошибку. view (Book._pageNumber 1) rayuela // error Как это будет использоваться?
14 май '22 в 03:17
1 ответ

Попытка понять, как реализованы функторы в FSharpPlus

Может кто-нибудь объяснить, как этот код работает на F#: https://github.com/fsprojects/FSharpPlus/blob/master/src/FSharpPlus/Control/Functor.fs#L99-99 static member inline Invoke (mapping: 'T->'U) (source: '``Functor<'T>``) : '``Functor<…
02 май '22 в 08:38