如何为免费Monad使用教堂编码? 我一直在使用free包中Control.Monad.Free中的Free数据类型.现在,我试图将其转换为在Control.Monad.Free.Church中使用F,但不知道如何映射函数. 例如,使用Free的简单模式匹配功能将如下所示- -- Pattern match Free matchFree :: (a -> r) -> (f (Free f a) -> r) - .. 发布时间:2020-07-19 20:30:01 haskell free-monad church-encoding scott-encoding 其他开发
你如何使用Scott Encoding表示嵌套类型? ADT可以使用Scott编码通过用元组替换产品和匹配器产生的和来表示。例如: 数据List a = Cons a(List a)|无 可以使用Scott编码进行编码: cons =(λhtcn。cht) nil =(λcn。n) 但我无法找到如何使用SE编码嵌套类型: 数据Tree a = Node(List(Tree a))|叶a .. 发布时间:2018-04-18 15:57:12 haskell functional-programming lambda-calculus algebraic-data-types scott-encoding 其他开发