(defun example1 nil (init-prolog) (<- (human ?x) (woman ?x)) (<- (human ?x) (man ?x)) (<- (carnivore ?x) (human ?x)) (<- (carnivore ?x) (human ?x) (eat ?x meat)) (<- (vegetarian ?x) (human ?x) (eat ?x vegetables)) (<- (living-thing ?x) (carnivore ?x)) (<- (living-thing ?x) (vegetarian ?x)) (<- (woman queen-elizabeth)) (<- (man dad)) (<- (eat queen-elizabeth meat)) (<- (eat dad vegetables)) ) <cl> (?- (living-thing dad)) Yes; Yes; <cl> (?- (living-thing ?x)) ?X = QUEEN-ELIZABETH; ?X = DAD; ?X = QUEEN-ELIZABETH; ?X = DAD;次のような一般的な手続きもプログラム可能です.
(defun example2 nil (<- (member ?item (?item . ?rest))) (<- (member ?item (?x . ?rest)) (member ?item ?rest))) <cl> (example2) MEMBER <cl> (?- (member 2 (1 2 3))) Yes; <cl> (?- (member 2 (1 2 3 4 2))) Yes; Yes; <cl> (?- (member ?x ( 1 2 3))) ?X = 1; ?X = 2; ?X = 3;