我试图用来core.logic
找出以下等式的答案:
x + y = W
x - y = V
W
和V
都是给定的,而x
和y
是我要计算的值。
我试过这样的方法(我W
用 60 和V
10 代替):
(logic/run* [q]
(logic/fresh [x y]
(logic/== q [x y])
(logic/project [x y]
; x + y = 60
; x - y = 10
(logic/== y (- 60 x))
(logic/== x (+ 10 y)))))
但它会返回(["10<lvar:y_6>" NaN])
(我希望是 35 和 25)。
我该如何处理?我不想使用clojure.core.logic.fd
,因为我正在使用 ClojureScript - 这可能吗?有可能fd
吗?
请注意,这些等式只是一个示例。在我的真实场景中,我想解决更多类似的问题:
x + H + y = W
x / y * 100 = V
现在我简化了那些以获得最基本的示例运行,但也欢迎上述解决方案:)