free-monad

Я пытаюсь построить конвейер для обработки сообщений, используя свободный шаблон монады, мой код выглядит так: module PipeMonad = type PipeInstruction<'msgIn, 'msgOut, 'a> = | HandleAsync of 'msgIn * (Async<'msgOut> -> 'a) | SendOutAsync of 'msgOut * (Async -> 'a) let private mapI...

Комментатор недавно заявил : Свободные монады - это церковные числа , просто использующие (Эндо-) функторы вместо функций! Он продолжает объяснять это говоря: Они оба являются эндофунктом (ион|или), составленным 0-n раз Я получаю, что церковные цифры - это набор анонимных функциональных композ...

Я реализовал простой язык для процесса ETL, используя свободную монаду. При использовании List в качестве входных и выходных данных как для выборки, так и для хранения данных, все работает нормально. Однако я использую асинхронные библиотеки и работаю с Future[List] Общий импорт и определения import scala...

Я пытаюсь построить АСТ, используя свободную монаду, основанную на некоторой полезной литературе, которую я прочитал в интернете. У меня есть несколько вопросов о работе с этими видами AST на практике, которые я свел к следующему примеру. Предположим, что мой язык допускает следующие команды: {-# LANGUAGE...

Есть некоторые выдающиеся работы с монадами в Clojure от Конрада Хинсена, Джим Дьюи и Леонардо Борхес. Мой вопрос - Можно ли сделать свободную монаду в Clojure? Это пример в Haskell из статьи о Scala: data Free f r = Free (f (Free f r)) | Pure r Это соответствующий пример Scala sealed abstract cla...

Я видел термин Свободные Монады поп теперьизатем в течение некоторого времени, но все просто используют/обсуждают их, не давая объяснения того, что они есть. Итак: что такое свободные монады? (Я бы сказал, что знаком с монадами и основами Хаскелла, но имею только очень грубое знание теории категорий.)...