問題タブ [as-pattern]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
list - ErlangのHaskellのas-patternsに相当するもの
このHaskellスニペットに相当するものをErlangで書くにはどうすればよいですか?
name@(x:xs)
haskell - 'as pattern' による as-pattern の非重複パターンの機能
私は特に関数型プログラミングと Haskell が初めてで、as-pattern とそれを使用することによる重複の削減について 2 つの質問があります。次のコード例を示します。
last1
と比較して重ならないようにする必要がありますlast2
。特定の String を見てみましょうf:[]
。[x]
とに一致し(x:xs)
ますlast1
。
にlast2
一致し[y]
ます。ただし(y:ys@(_:_))
、ys
一致する(_:_)
必要があり、最初の任意のパターンを[]
.
私の仮定は正しいですか?
次に、特定の String を見てみましょうf:o:o:[]
。これでパターンが(y:ys@(_:_))
一致しました。この場合、バインディングがどのように機能するのか興味があります。ys
最初の呼び出しの後は何ですか? だと思いo:o:[]
ます。