对于一个学习Haskell的微型项目,我已经决定要制作一个确定性有限状态机程序。
我认为我有一种非常聪明的方法,涉及返回相同类型函数的函数。我遇到了障碍。我心想,我如何在定义中做一些明确递归的事情。
我突然顿悟了。type node = Char -> node
唉,Haskell不允许在其类型同义词中进行递归。所以我的问题是:你如何制作那种本质上递归的类型?返回相同类型函数的函数的类型声明是什么?
答案 0 :(得分:6)
您只需将递归类型包装在newtype
。
newtype Node = Node (Char -> Node)