リストの連続する要素の平均を計算する関数をOCamlに書き込もうとしています。たとえば、[1; 2; 3; 4]
と入力すると、[1; 2; 3]
が出力されます。 (1 + 2)/2
とし、1
とし、(2 + 3)/2
をとり、2
とするなどです。 私が書いたコードは、しかし、唯一の[1; 2]
返しますOCamlの連続するリスト要素の平均計算
let rec average2 xs = match xs with
|[] -> []
|x :: [] -> [x]
|x :: x' :: xs -> if xs = [] then [(x + x')/2] else [(x + x')/2] @ (average2 xs)
あなたはどのようにこの問題を解決する方法を教えてくださいすることができます。ありがとうございました。