1

matche のようなものを使用して、core.logic 内のリストとパターン マッチングを行うことができないか考えています。

ベクトルのようなもので

=> (defn checko [code r] (matche [code] ([['foo ?a ?b]] (== r [?a ?b]))))
=> (run* [q] (checko [:foo :u 2] q))
  ([:u 2])

かなりうまく機能しますが、ベクトルの代わりにリスト (foo :u 2) を一致させる方法がわかりませんでした。理由は、core.logic を使って clojure プログラムを解析したいからです。

4

2 に答える 2

1

あなたのチェックは、一致するリストに対してうまく機能するはずです。

于 2012-05-25T00:17:52.843 に答える
0

著者自身の保証が不十分な場合のために、core.match とベクトル パターン マッチ リスト (そして一般的には seq) をうまく使用しました。

于 2012-05-25T02:41:12.823 に答える