さて、私はscheme/racket/lispで新しいです。私は独自の関数、構文、再帰を作成して練習していますので、あらかじめ定義されたバージョンとまったく同じように自分自身のfoldl
とfoldr
関数を作りたいと思います。私はこれらの機能がどのように機能するのか分かりませんので、できません。私はここで似たような質問を見ましたが、私はまだそれを得ていません。分解されたいくつかの例が役に立ちます!ここに私の(間違った)プロセスである:foldlとfoldrはどのように機能しますか?
(foldl - 0 '(1 2 3 4))
私は0 -(4-3-2-1)
を行うと、私は0-(1-2-3-4)
を行うと、8を得るが、それがあるべき-2
(foldl - 0 '(4 3 2 1))
正しい答えである2を取得します。
(foldr - 0 '(1 2 3 4))
私は0-(1-2-3-4)
を実行してもう一度8を取得しますが、-2にする必要があります。
(foldr - 0 '(4 3 2 1))
私は0-(4-3-2-1)
を取得し、正しい答えです2を取得します。
私は間違っていますか?
このページでの議論も役に立ちます:http://stackoverflow.com/questions/39018163/expanded-form-of-fold-in-racket – rnso