[英]How to do recursion for recursive data type in function in Haskell
[英]how can I do a data type recursive in haskell
我该怎么做这样的数据类型:
data Xpto = String [Xpto ]
insertHead :: String -> Xpto
insertHead s = s []
我收到此消息:
Type error in application
*** Expression : s []
*** Term : s
*** Type : [Char]
*** Does not match : a -> b
这与数据类型是递归的事实无关。 您不能定义小写数据类型。 类型以大写字母开头。
此外,您必须定义一个构造函数 ,这里最直接的构造函数也可能是Xpto
(构造函数也以大写字母开头)。
所以写:
data Xpto = Xpto String [Xpto]
-- ^ constructor
insertHead :: String -> Xpto
insertHead s = Xpto s []
-- ^ apply the data constructor
或者我们可以通过使用flip
来使insertHead
指向:
insertHead :: String -> Xpto
insertHead = flip Xpto []
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.