私は Lisp を初めて使用するので、ここで何か単純なものが欠けていると思います。試してみたいコードをオンラインで見つけましたが、defgrammar マクロを使用しています。それを自分のコード ファイルに書き込んで、Web から正確にコピーして、保存、読み込みを開始すると、次のように表示されます (ファイル名は省略されています)。
;; Loading file ...
*** - EVAL: undefined function DEFGRAMMAR
循環リストを印刷したり、アドオンやインストールする必要があるものなど、反転する必要がある変数があると思いますが、何を探しているのかよくわかりません。助言がありますか?
ちなみにGNU CLisp 2.49を使っています。
私が使用しようとしているコードは次のとおりです。
(load "rdp")
(use-package "COM.INFORMATIMAGO.RDP")
(defgrammar binary-tree
:terminals ((label "[^(),][^(),]*"))
:start tree
:rules ((--> tree
(opt node)
:action (if (null $1)
(make-empty-binary-tree)
$1)) ; it's identity, but make-empty-binary-tree
; could be defined otherwise.
(--> node
label (opt children)
:action (make-binary-tree :label (read-from-string (second $1))
:left (first $2) :right (second $2)))
(--> children
"(" tree "," tree ")"
:action (list $2 $4))))
(defun binary-tree-from-string (string)
(parse-binary-tree string))
それを見ると、「rdp」が必要だと思いますか?