【发布时间】:2012-03-18 06:26:24
【问题描述】:
我在这里寻找一些词汇。有许多具有通用名称的形状。例如L a = Empty | Cons a L一般称为“列表”,而T a = Leaf a | Node (T a) (T a)是“二叉树”,St s a :: St (s->(a,s))是State Monad的形式。
我想知道这样的形状是否有名字:
data R a b = Q (a -> (R a b,b))
我在 Arrow 框架和状态机实现中看到了这种模式。递归函数让它感觉有点像 State Monad 或 Cont Monad。它也是除了(->) 和(>=>) 之外的唯一结构,我已经看到了Arrow 的定义实例。
这种数据结构有通用名称吗?
【问题讨论】:
-
你那里有一棵盆景树:)。更好的二叉树是
T a = Branch (T a) (T a) | Leaf a -
@amindfy:你是对的。我已经修好了。谢谢。
-
@JohnF.Miller 你不想在
T a的某个地方存储一些a吗? :D(对不起...我不得不...)(或者它可能是幻影类型!?:p)
标签: haskell data-structures types terminology