i
数値のリストが与えられた場合、 index の要素が の前のすべての要素の合計である新しいリストを作成したいと考えていますi-1
。
例えば :
[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);
問題の原因であることがわかりますが、どうすれば修正できますか?
よろしく