递归地在Haskell中键入声明的函数

时间:2014-08-22 05:03:28

标签: haskell

对于一个学习Haskell的微型项目,我已经决定要制作一个确定性有限状态机程序。

我认为我有一种非常聪明的方法,涉及返回相同类型函数的函数。我遇到了障碍。我心想,我如何在定义中做一些明确递归的事情。

我突然顿悟了。 type node = Char -> node

唉,Haskell不允许在其类型同义词中进行递归。所以我的问题是:你如何制作那种本质上递归的类型?返回相同类型函数的函数的类型声明是什么?

1 个答案:

答案 0 :(得分:6)

您只需将递归类型包装在newtype

newtype Node = Node (Char -> Node)