0

重複の可能性:
標準 ML の部分合計?

関数型プログラミングは初めてで、リストの部分和を計算する割り当てがあります。例 - psum [1,1,1,1,1]; val it = [1,2,3,4,5] : int リスト

これまでの私のコードは次のとおりです。ただし、私の関数はリストをそのまま返すだけです。

 fun ppsum2([])=[]
| ppsum2(x::L) = x::ppsum2(L);


 exception Empty_List;

fun psum(L) : int list = 
if L=nil then raise Empty_List
else psum2(L);


psum([2,3,4]);  
4

2 に答える 2

1

これは宿題のように見えるので、これが十分に簡単であることを願っています。

 fun psum2 [] total = []  
   | psum2 (h::t) total = (total+h) :: psum2 t (total+h)

 fun psum lst = psum2 lst 0
于 2013-01-18T20:37:48.360 に答える
1

Haskellsscanl1関数のソース コードを調べて、ML に変換できます。

このようにして、関数型プログラミングを学ぶのではなく、メディア能力を学びます。

于 2013-01-19T01:53:44.187 に答える