Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 树状结构的递归方案_Haskell_Functional Programming_Recursion Schemes_Catamorphism - Fatal编程技术网

Haskell 树状结构的递归方案

Haskell 树状结构的递归方案,haskell,functional-programming,recursion-schemes,catamorphism,Haskell,Functional Programming,Recursion Schemes,Catamorphism,我正在尝试构建以下递归方案: {-#语言派生函子#-} 导入Data.Functor.Foldable 进口管制 导入控制.Comonad.Cofree 数据项a=Str字符串|数组[a]派生(显示,函子) 类型树=固定术语 类型注释=共自由项字符串 --即带注释=字符串×带注释的术语 内容::(术语字符串->字符串)->树->注释 某物代数=cata代数“在哪里 代数't=代数(摘录t):

我正在尝试构建以下递归方案:

{-#语言派生函子#-}
导入Data.Functor.Foldable
进口管制
导入控制.Comonad.Cofree
数据项a=Str字符串|数组[a]派生(显示,函子)
类型树=固定术语
类型注释=共自由项字符串
--即带注释=字符串×带注释的术语
内容::(术语字符串->字符串)->树->注释
某物代数=cata代数“在哪里
代数't=代数(摘录t):

如何使用现代递归方案库(如
递归方案
)中的库存函数,以最通用、最简约的方式编写这个
东西
?此方案有一个众所周知的名称吗?

欢迎使用堆栈溢出!在我看来,您可能可以使用来实现
某些东西
。再想一想,我认为这行不通,因为
提升
的rank-2类型不允许您访问基函子的arg。潜在的亲密投票者:这个问题的范围非常好;它不“需要更多的关注”。这篇文章碰巧有两个问号,这一点都不重要。