小编Joh*_*rry的帖子

Haskell 中的长度函数问题

我正在尝试在 Haskell 中编写一个函数,该函数将采用整数列表,例如 [1,2,3,4,5] 并使用递归将它们转换为数字,例如 12345。我正在使用 Haskell 标准库中的长度函数来计算数字的位置,以便将它们加在一起(10000+2000+300+40+5)。但是,当我使用 length 来计算列表的长度时,无论如何它总是 1,我不知道为什么。这是我的代码:

dig :: [Integer] -> Integer
dig [] = 0
dig (x:xs) = x * (10^(fromIntegral(length[xs]))) + fromDigits(xs)
Run Code Online (Sandbox Code Playgroud)

运行此代码将始终只是将数字乘以 10 并且长度始终为 1,因此 dig [1,2,3,4] 给出 100 而不是 1234。

recursion haskell integer list

2
推荐指数
1
解决办法
71
查看次数

标签 统计

haskell ×1

integer ×1

list ×1

recursion ×1