5

私はDatomicクエリについて学び、「パラメータクエリ」の実行方法に興味がありました。

これは私が思いついたものです:

(d/q '[:find ?n ?x :where [?n :likes ?x] [(= ?x "pizza")]] 
  [['ethel :likes "sushi"]['fred :likes "pizza"]])

=> #<HashSet [[fred "pizza"]]>

これはそれですか、それとも上記を達成するためのより簡潔で慣用的な方法がありますか?

4

1 に答える 1

6

答えは、 Datomicチュートリアルの「高度なクエリ」のセクションにあります

:in句を使用する

(d/q '[:find ?n ?x :in $ ?x :where [?n :likes ?x]] 
  [['ethel :likes "sushi"]['fred :likes "pizza"]] "sushi")

=> #<HashSet [[ethel "sushi"]]>

:in $ ?xはパラメータ句であり、末尾"sushi"はにバインドされています?x

于 2012-08-09T20:46:55.203 に答える