質問: Erlangの配列要素の比較 私は関数型プログラミングの方法を考える方法を学ぼうとしています。そのために、私はErlangを学び、codingbatから簡単な問題を解決しようとしています。リスト内の要素を比較するという共通の問題が発生しました。たとえば、i番目の位置要素の値とリストのi + 1番目の位置の値を比較します。だから、私はErlang(または任意の関数言語)の機能的な方法でこれを行う方法を考えて、探しています。 してください、私と優しい、私はこの機能的な世界では非常にnewbですが、私は学びたい 前もって感謝します
回答: リストを定義する: ``` L = [1,2,3,4,4,5,6] ``` リストを取る関数fを定義する * 1つの要素または空のリストのリストと一致する場合は、空のリストを返します。 * 最初の要素と2番目の要素が一致する場合は、最初の要素を取り出し、リストの残りの部分を再帰的に呼び出して新しいリストを構築します。 * そうでない場合は、リストの最初の要素をスキップします。 Erlangコード ``` f ([]) -> []; f ([_]) -> []; f ([X, X|Rest]) -> [X | f(Rest)]; f ([_|Rest]) -> f(Rest). ``` 適用機能 ``` f(L) ``` これはうまくいくはずだ...コンパイルして実行していないが、それを開始する必要があります。また、それを変更して別の振る舞いをする必要がある場合に備えてください。 Erlangへようこそ;)