一部の core.logic コンストラクト ( matcha
、matche
、matchu
、 ) はdefne
、fne
パターン マッチング式を本体として使用し、次のように使用できます。
(run* [q]
(fresh [a o]
(== a [1 2 3 4 5])
(matche [a]
([ [1 2 . [3 4 5] ]]
(== q "first"))
([ [1 2 3 . [4 5] ]]
(== q "second"))
([ [1 . _] ]
(== q "third")))))
;=> ("first"
; "second"
; "third")
しかし、core.logic のドキュメントにパターン マッチングの構文の仕様が見つかりません。この構文は何ですか? 多分私はいくつかのミニカンレンのドキュメントや本でそれを見つけることができますか?
- 接頭辞が付いた変数と接頭辞が付いていない一致した変数の違いは何
?
ですか? - リストに加えて、他の破壊構造はありますか( clojure
.
と同様)?&
[_ _]
2 つの要素を持つシーケンスのみに一致しますか?- 地図を破壊することは可能ですか?