Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > LISP > Простейшая экспертная система lisp


Автор: learningToProgram 11.5.2015, 14:53
Добрый день! 
Нашла пример экспертной системы в книге OnLisp, хотела проверить. Вроде все прозрачно, но Emacs выдает ошибки при попытке запуска.  smile 

вот код:
Код

(defstruct node contents yes no)

(defvar *nodes* (make-hash-table))

(defun defnode (name conts &optional yes no)
  (setf (gethash name *nodes*)
    (if yes
        #’(lambda ()
        (format t "~A~%>> " conts)
        (case (read)
          (yes (funcall (gethash yes *nodes*)))
          (t (funcall (gethash no *nodes*)))))
          #’(lambda () conts))))


(defnode ’people "Is the person a man?" ’male ’female)
(defnode ’male "Is he living?" ’liveman ’deadman)
(defnode ’deadman "Was he American?" ’us ’them)
(defnode ’us "Is he on a coin?" ’coin ’cidence)
(defnode ’coin "Is the coin a penny?" ’penny ’coins)
(defnode ’penny ’lincoln)

(defun run-node (name)
  (let ((n (gethash name *nodes*)))
    (cond ((node-yes n)
       (format t "~A~%>> " (node-contents n))
       (case (read)
         (yes (run-node (node-yes n)))
         (t (run-node (node-no n)))))
      (t (node-contents n)))))

Подскажите, как запустить программу или может посоветуйте интерпретатор?

Автор: cooper123 19.8.2015, 00:06
Emacs lisp это не common lisp  надо брать любую реализацию. сейчас модно sbcl, ecl, clisp 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)