Page 197 - 6734
P. 197
print (c[X]==Y).data # знайти кількість дітей батька
X
pyDatalog.clear() # очистити базу даних
pyDatalog.create_terms("abs, f, g") # abs - вбудована
функція
print ((X==[1,2,-3]) & (Y==abs(X[2])+1)).data #
знайти X,Y
print (X.in_(range(5)) & Y.in_(range(5)) & (Z==X+Y) &
(Z<2)).data # знайти X,Y
f["Ivan"]=2 # факт (f - предикат)
f["Petro"]=0
#+(f['Petro'] == 0) # або
print ((f[X]==Y) & (Y>0)).data # знайти X,Y
del f["Ivan"] # видалити
(g[X]==3) <= (X=="Ivan")
print ((g[X]==Y)).data # знайти X,Y
[(u'Ivan',)]
[(u'Petro',), (u'Stepan',)]
[(u'Petro', u'Stepan'), (u'Stepan', u'Petro')]
[(u'Ivan', 2)]
[((1, 2, -3), 4)]
[(0, 1, 1), (1, 0, 1), (0, 0, 0)]
[(u'Ivan', 2)]
[(u'Ivan', 3)]
Зв’язок з інтерпретатором Prolog
В прикладі показано спосіб взаємодії Python програми з
інтерпретатором Prolog (SWI-Prolog) за допомогою
subprocess.Popen. Більш тісний зв’язок з SWI-Prolog реалізує
пакет PySwip (http://github.com/yuce/pyswip).
from subprocess import Popen, PIPE, STDOUT
with open('family.pl', 'w') as f: # створити Prolog-
196