我是Haskell的新手,正在尝试将一个int转换为一个反向数字列表(一个int)。
我所拥有的是:
Lnat 0 = [0]
Lnat x = [mod x 10] ++ Lnat (div x 10)
但是我两行都收到错误“不在范围内:数据构造函数'Lnat'”,尝试加载文件时会崩溃。
您能否解释这个问题的根源以及如何解决?
所有值都必须以小写字母开头。如果它以大写字母开头,或者:
该值是数据构造函数,则将在data
声明中使用它。这就是您想要将功能更改为:
lnat 0 = [0]
lnat x = mod x 10 : lnat (div x 10)
请注意,我还更改了效率不高的++
运算符,:
以提高速度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句