私はErlangを学んでおり、本から演習を行っています:
「フォーマット [1,2,..,N-1,N].create(3) -> [1,2,3] のリストを返す関数を書きなさい。」
私は解決策を持っています:
create(N) -> create(1, N).
create (M,M) -> [M];
create(M,N) -> [M | create(M+1, N)].
何十回も試しましたが、ソリューションの 2 行目で何が起こっているのか理解できません。誰か説明してくれませんか?ありがとうございました。
編集。わかりました、それで私はそれを理解するための正しい軌道に乗っていると思います. 2 行目では、基本的に 1 が頭に、N が尾に移動する新しいリストが作成されます。はいの場合、3 行目の M は 2 行目で作成した新しいリストを表し、N は 1 行目の入力整数を表しますか? 再度、感謝します。