Как использовать `pyDatalog.predicate` в теле правила? - PullRequest
0 голосов
/ 03 марта 2020

Я могу создать pyDatalog.predicate, как показано в документации:

from pyDatalog import pyDatalog
import pyDatalog.pyDatalog as dlog

pyDatalog.clear()

pyDatalog.create_terms('X, Y, p, f')

@pyDatalog.predicate()
def p(X,Y):
    yield (1,2)
    yield (2,3)

result = pyDatalog.ask('p(1,Y) & p(1,Y)')
print(result) # {(2,)}

Но тогда ...

body = p(1,Y) & p(1,Y)  # Fail
f(X) <= body

получает:

    body = p(1,Y) & p(1,Y)  # Fail
TypeError: unsupported operand type(s) for &: 'generator' and 'generator'

Можно ли использовать этот предикат только через анализатор?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...