1

sum_matrixこのように使用できる機能を実装するにはどうすればよいですか?

let m = [[1;2;3]; [4;5;6]];; 
sum_matrix( [[1;2;3]; [4;5;6]]);;

マッチングを使用せず、またはリストを空のリストと比較しません。フォールドを使用することになっています。

2 つの個別のリストを使用してこれを行う方法は理解していますが、マトリックスの側面により、理解できないレベルの深さが追加されます。また、OCaml はどのようにして実際にそのようなパラメーターを受け入れるのでしょうか?

4

1 に答える 1

3

関数

let sum li = List.fold_left (fun acc elem -> acc + elem) 0 li

リストのすべての要素を追加します (整数でなければなりません)。

関数

let sum_apply f li = List.fold_left (fun acc elem -> acc + f elem) 0 li

f入力リストの各要素に適用する合計を計算します: sum_apply f [x;y;z]is -- これは、 andf x + f y + f zを使用して実装することもできます。 sumList.map

これら 2 つの関数を組み合わせて の整数の合計を取得する方法がわかりますint list listか?

于 2013-06-11T08:15:38.723 に答える