我是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”?
答案 0 :(得分:0)
您想要使用的代码是什么,可以将其粘贴到此处吗? defgrammar
不是内置函数。您应该找到defgrammar
函数的定义。首先加载它然后重新评估您的示例。