2012-05-24 25 views
1

我不知道是否可以使用類似matche做圖案像matche上列出

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

列表以及向量的東西匹配

作品相當好,但我想不出瞭解如何匹配一個列表(foo:u 2)而不是一個向量。原因是我想用core.logic分析clojure程序。

+0

好的,我可以使用 (defn checko [code r](matche [(vec code)]([['foo?a?b]](== r [?a?b])))) –

回答

1

您的checko應該適用於匹配列表。

+0

確實如此。無論什麼問題我都無法重現。我將不得不再次考慮:-)無論如何 –

0

從作者本人的情況下保證是不夠的,我已經使用core.match和矢量模式匹配列表(和一般的確實seqs)就好了 - 這是他們應該做的事情。