Erlangでファーストクラスのパターンのサポートはありますか?
f(SomeMagicPattern) ->
receive
SomeMagicPattern -> ok
end.
答えがノー (サポート) の場合、これを達成するための他のアプローチを知っていますか? たとえば、マクロを使用していますか?
Erlangでファーストクラスのパターンのサポートはありますか?
f(SomeMagicPattern) ->
receive
SomeMagicPattern -> ok
end.
答えがノー (サポート) の場合、これを達成するための他のアプローチを知っていますか? たとえば、マクロを使用していますか?
いいえ、Erlang にはすぐに使用できるファーストクラスのパターンはありません。これを実装するには、次の 2 つの方法があります。
マクロ。たとえば、EUnit や PropEr などのテスト ツールで広く使用されています。たとえば、EUnit には ?assertMatch マクロがあり、これは実際にはファースト クラスのパターンの例です。
?assertMatch({ok, _}, 結果)
変換を解析します。書くのは難しくなりますが、Erlang の抽象コードにアクセスして完全に書き直すことができるため、より強力になる可能性があります。ここには、解析変換に関する一連のチュートリアルへのリンクがあります: Is there a good, complete tutorial on Erlang parse transforms available?
demeshchuk が指摘するように、これは事実ではありません。
ただし、言語に似たものを追加する提案があります。
http://www.erlang.org/eeps/eep-0029.html
これが良いアイデアかどうかは、まったく別の問題です...