我想用core.logic寫入factorial。我發現這個序言段Clojure中的因子core.logic
factorial(0, 1).
factorial(N, M):- N1 is N - 1, factorial (N1, M1), M is N*M1.
,並試圖把它翻譯中失敗消息
clojure.core.logic.LVar cannot be cast to java.lang.Number
[Thrown class java.lang.ClassCastException]
什麼是正確的方式通過以下方式
(defne factorialo [n m]
([0 1])
([n m] (fresh [n1 m1]
(== (- n 1) n1)
(== (* n m1) m)
(factorialo n1 m1))))
(run* [q]
(factorialo 3 q))
到core.logic在core.logic中編寫階乘?
這是一個假設的問題,還是有一個很好的理由不寫在Clojure? – Bill
目標是學習邏輯編程和core.logic庫提供的可能性。 – mchlstckl