다른 조리법에 대한 조리법이 많고 주방에 다양한 재료가 포함 된 라디에이터가 있다고 가정 해보십시오. core.logic을 사용하여 모델을 구성하여 다음 질문에 답할 수있게 해드립니다. 주어진 재료 세트 (즉, 현재 내 라더에있는 재료)에 대해 어떤 요리법을 만들 수 있습니까? 조리법은 다소 유연하며이를 모델링 할 수 있어야합니다. 나중에 수량을 추가하고
결과를 어떻게`fresh` 변경 설명 core.logic : (1 1) : (q/run* [q]
(q/fresh [a]
(q/membero a [2 3]))
(q/membero q [1]))
가 나는 결과를 이해하지 않습니다. , (1), 또는 (1 2 1 3) : 나의 이해는 내가 그러므로 내가 좋아하는 무언가를보고 기대
저는 논리 프로그래밍 초보자입니다. 나는이 같은 정렬 관계를 구현하기 위해 노력하고있어 : (sorto [3 2 1][1 2 3]) -> #s Clojure의 및 core.logic 사용 I'am :이에 종료 할 수없는 이유를 이해가 안 을 대부분의 경우. 어떤 아이디어라도 도움이 될 것입니다. 감사합니다. (require '[clojure.core.log
이것은 바보 같은 질문이어야합니다.하지만 core.logic의 목표 목록을 어떻게 처리해야합니까? run*이 목록을 기대하지 않는 (run* [g]
(f))
(defn f[]
'(succeed succeed))
는 예외가 발생합니다. (apply all (f)) 할 필요가 있지만 all 매크로, 그래서 작동하지 않는 느낌. 해결책은
사용 가능한 교단 세트가 주어지면서 주어진 금액에 해당하는 지폐/동전 종목의 모든 조합을 얻고 싶습니다. 그래서 예를 들어, (change 14 #{1 2 5 10}) 위해 나는 (
{10 1, 5 0, 2 2, 1 0}
{10 1, 5 0, 2 1, 1 2}
{10 0, 5 2, 2 2, 1 0}
{10 0, 5 2, 2
나는 모델링 문제에 당분간 당황 스러웠다. 나는 어떻게 내가 "적절하게"그것을 core.logic에서 해결할 수 있을지 전혀 모르겠다 고 고백해야한다. 트리 (비순환 단 향성 그래프)와 정점이있는 경우, core.logic을 사용하면 lvar가 주어진 정점의 도달 가능한 정점이 될 수있는 목표를 어떻게 정의 할 수 있습니까? 나는 가능한 한 간단하게 뭔가
다음 두 예제에서 첫 번째 값이 올바른 값 (1)을 반환하는 이유는 알 수 없지만 두 번째 값은 ()을 반환합니다. 결과가 (:key)이거나 솔루션을 찾을 수 없다는 예외가 있었지만 빈 목록은 찾을 수 없습니다. (l/run* [q]
(l/== {:key 1} {:key q}))
;; BUT IT DOESNT WORK
(l/run* [q]