たとえば、数値のリストが与えられた場合、 x -1 = 0の(1 3 6 10 0)場合、どのように差(x i --x i-1)を計算しますか?
(この例の結果は次のようになります(1 2 3 4 -10))
私はこの解決策が正しいことを発見しました:
(定義(ペアワイズ-2 f init l)
(最初
(foldl
(λ(x acc-data)
(let([result-list(first acc-data)]
[prev-x(2番目のacc-data)])
(リスト
(結果リストを追加(list(fx prev-x)))
バツ)))
(空のリスト0)
l)))
(ペアワイズ-2-0'(1 3 6 10 0))
;; =>(1 2 3 4 -10)
ただし、柔軟性の低いソリューションではありませんが、よりエレガントなソリューションが必要だと思います。それはただ醜いです。
関数型プログラミングは初めてですが、コードに関する提案を聞きたいと思います。
ありがとう。