python逻辑拼图关系

时间:2021-06-19 04:15:13

标签: python logic member zebra-puzzle minikanren

在python中尝试使用Logic解决以下问题:

from kanren             import run, eq, membero, var, conde
from kanren.constraints import neq, isinstanceo

rules = (eq, (var(), var(), var(), var()), people),
  (membero, (4, x, ('Steve'  , var()   , 'blue' , var()      ), people)),
  (membero, (4, x, ( var()   , 'cat'   , var()  , 'Canada'   ), people)),
  (membero, (4, x, ('Matthew', var()   , var()  , 'USA'      ), people)),
  (membero, (4, x, ( var()   , var()   , 'black', 'Australia'), people)),
  (membero, (4, x, ('Jack'   , 'cat'   , var()  , var()      ), people)),
  (membero, (4, x, ('Alfred' , var()   , var()  , 'Australia'), people)),
  (membero, (4, x, ( var()   , 'dog'   , var()  , 'France'   ), people)),
  (membero, (4, x, ( var()   , 'rabbit', var()  , var()      ), people))

结果:

(<function kanren.goals.membero(x, ls)>,
(4, ~_2, (~_2422, 'rabbit', ~_2423, ~_2424), ~_809))

这让我无法跑步

solutions = run(0, people, rules)

你能帮我解决一个问题吗?

谢谢。

0 个答案:

没有答案