0
給定一個數字列表,我想創建一個新列表,其索引爲i
之前的所有i-1
元素的總和。SML - 使用原始列表的元素構建一個新列表 - 錯誤:運算符和操作數不同意[literal]
例如:
[1,4,6,9] -> [1,5,11,20]
我已經寫了下面的代碼:
fun sum nil = 0
| sum [x]=x
| sum(x::rest)=(x+hd(rest))::sum(rest);
,但我得到這個:
- fun sum nil = 0
= | sum [x]=x
= | sum(x::rest)=(x+hd(rest))::sum(rest);
stdIn:306.16-306.39 Error: operator and operand don't agree [literal]
operator domain: int * int list
operand: int * int
in expression:
x + hd rest :: sum rest
我可以看到的(x+hd(rest))::sum(rest);
遞歸規則是 問題的原因,但我該如何解決它?
Regards