40 lines
852 B
Common Lisp
40 lines
852 B
Common Lisp
|
(defun (setf question) (answer quest)
|
||
|
(give-answer quest answer))
|
||
|
|
||
|
(defun give-answer (quest answer)
|
||
|
(format t "From now on ~a -> ~a~%" quest answer)
|
||
|
answer)
|
||
|
|
||
|
(defun question (x)
|
||
|
(format t "Question: ~a~%" x))
|
||
|
|
||
|
|
||
|
(defvar *OBSERVATION-NUMBER* 0)
|
||
|
(defmacro defobs (obs input parsed)
|
||
|
"Defines a new input-parsed pair."
|
||
|
|
||
|
(when parsed
|
||
|
(incf *OBSERVATION-NUMBER*)
|
||
|
(format t "> ~a" input)
|
||
|
(let ((listv (gensym))
|
||
|
(obsv (gensym)))
|
||
|
`(let ((,listv ',parsed)
|
||
|
(,obsv ,obs))
|
||
|
(case ,obsv
|
||
|
(1.00
|
||
|
(progn
|
||
|
(format t " || Yes~%")
|
||
|
(setf ,parsed t))))))))
|
||
|
|
||
|
;; Basic operators
|
||
|
(load "operators.lisp")
|
||
|
|
||
|
;; Load knowledge base
|
||
|
(load "gac-80k-affirmations.lisp")
|
||
|
|
||
|
(load "gac-80k.lisp")
|
||
|
|
||
|
|
||
|
;; Stats
|
||
|
(format t "~%Read ~a observations.~%" *OBSERVATION-NUMBER*)
|