私はthis questionにつまずいたので、私は無手順プログラミングクラスからたくさんのものを忘れてしまったことに気付きました。erlangと関数型プログラミングに関する重要でない質問
私はコードを理解しようとしていたので、それはひどく長続きしていると思われたので、私はそれを短縮しようとしました。これは元のコードと同じことをしますか?
merge([X|Xs], Ys) -> [X | merge(Ys, Xs)];
merge([], []) -> [].
...私は前にアーランで働いたことがありませんので、私は多分はい、それは正常に動作
リストを空のリストにマージすると、このコードは元のリストを返しますか?パターンマッチングは私には見えません。 –
元のタスクは同じ長さの2つのリストのためのものでした – cube
キューブが正しい - そしてあなたが不等長さの2つのリストで元のコードを実行しようとすると失敗するでしょう。 mergeR([]、[]、Zs)に一致する終端節XsとYsの長さが異なる場合、一方のリストがもう一方のリストの前に使い果たされるとエラーになります。 –