28 lines
		
	
	
		
			681 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			681 B
		
	
	
	
		
			Python
		
	
	
	
	
	
# -*- coding:utf-8 -*-
 | 
						|
 | 
						|
from pyswip.core import *
 | 
						|
from pyswip.prolog import Prolog
 | 
						|
 | 
						|
def main():
 | 
						|
    prolog = Prolog()
 | 
						|
    
 | 
						|
    a1 = PL_new_term_refs(2)
 | 
						|
    a2 = a1 + 1
 | 
						|
    t = PL_new_term_ref()
 | 
						|
    ta = PL_new_term_ref()
 | 
						|
 | 
						|
    animal2 = PL_new_functor(PL_new_atom("animal"), 2)
 | 
						|
    assertz = PL_new_functor(PL_new_atom("assertz"), 1)
 | 
						|
    PL_put_atom_chars(a1, "gnu")
 | 
						|
    PL_put_integer(a2, 50)
 | 
						|
    #PL_cons_functor(t, animal2, a1, a2)
 | 
						|
    PL_cons_functor_v(t, animal2, a1)
 | 
						|
    PL_cons_functor_v(ta, assertz, t)
 | 
						|
    PL_call(ta, None)
 | 
						|
    
 | 
						|
#    prolog.assertz("animal(gnu, 50)")
 | 
						|
    print list(prolog.query("animal(X,Y)", catcherrors=True))
 | 
						|
    
 | 
						|
if __name__ == "__main__":
 | 
						|
    main()
 |