A.5.1 Examples
|==> ((print "foo"))
|
|"foo"
|YES.
|
|==> (and (= ?x 3) ((* ?x ?x) ?y))
; Note that "?y" is unified with 9
|?X = 3
|?Y = 9
|
|==> ((* 3 3) 10)
|NO.
|
|==> ((floor 3 4) ?x ?y)
|
|?X = 0
|?Y = 3
|==> ((floor 3 4) ?x)
|
|?X = 0
|
|==> ((* 3 4) ?x ?y)
|
|?X = 12
|?Y = ?0
; note that system generated variables look like:
; ?<integer>
|==> ((typep 3 'integer) ?x)
|
|?X = T
|
|==> ((typep 3 'integer) t)
|
|YES.
|
|==> (and ((floor 5 3) ?x) ((floor 4 3) ?x))
|
|?X = 1
|
|==> ((cons 3 4) (?x . ?y))
|
|?X = 3
|?Y = 4
|
|==> (and (= ?op *) ((list ?op 3 4) ?y) (call (?y ?z)))
|
|?OP = *
|?Y = (* 3 4)
|?Z = 12
|
|==> (and (defrel fact
| ((fact 0 1))
| ((fact ?x ?y)
| ((- ?x 1) ?w)
| (fact ?w ?z)
| ((* ?z ?x) ?y)))
| (fact 10 ?result))
|
|?X = ?0
|?Y = ?1
|?W = ?2
|?Z = ?3
|?RESULT = 3628800
KnowledgeWorks and Prolog User Guide (Unix version) - 22 Dec 2009