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
   192   193   194   195   196   197   198   199   200   201   202