从表示该整数的列表中生成一个整数值

Making an integer value from a list that represents that integer

您好,我正在尝试用 SML 编写一个函数。我的目=11=]

所以我的思路是将列表中的每个元素相互相加..乘以 10^n 其中 n 每次增加 1

例如 [2,3,4] -> 2*10^0 + 3*10^1 +4* 10^2 = 432..我不确定如何递归执行此操作,但这就是我有

fun List2Integer nil = 0
  | List2Integer (x::xs) = x * (power (10,1)) + (List2Integer xs);

我知道现在它不起作用,因为 x 总是乘以 10^1,而 1 没有增加。

感谢您花时间阅读本文..我将不胜感激任何提示

fun toInt [] = 0
  | toInt (x :: xs) = x + 10 * (toInt xs)

要从数字列表 [a0, a1, a2, a3, ...] 中计算出正确的数字,您只需计算总和 a0 + a1*10 + a2*10*10 + a3*10*10*10 + ...。然后你可以左分解 10 并得到形式为 a0 + 10*(a1 + 10*(a2 + 10*(a3 + 10*(...)))) 的表达式,这正是上面的函数所做的。