Haskell 反转数字数字列表

Haskell Reversed Number Digit List

我是 Haskell 的新手,我正在尝试将 int 转换为(整数的)反向数字列表。

我有的是:

Lnat 0 = [0]
Lnat x = [mod x 10] ++ Lnat (div x 10)

但是我在两行中都收到错误 "Not in scope: data constructor 'Lnat'" 并且它在尝试加载文件时崩溃了。

能否请您解释一下这个问题的根源以及解决方法?

所有值必须以小写字符开头。如果它以大写或 : 开头,那么该值是一个数据构造函数,用于 data 声明。这就是您要将函数更改为:

lnat 0 = [0]
lnat x = mod x 10 : lnat (div x 10)

请注意,我还将低效的 ++ 运算符更改为 : 以增加一点速度。