我在scheme48中尝试过一个define-record-type的例子,它似乎不起作用。怎么了?
(define-record-type circle
(make-circle r)
circle?
(r get-radius))
给出
Error: undefined variable
circle
(package user)
我尝试了其他例子,我得到了类似的结果。我甚至直接尝试了scheme48用户手册。
提前致谢。
答案 0 :(得分:2)
在manual中声明record
的定义如下:
(define-record-type tag type-name
(constructor-name field-tag ...)
predicate-name
(field-tag accessor-name [modifier-name])
...)
因此,在您的示例中,似乎缺少type-name
。试试这个:
(define-record-type circle :circle
(make-circle r)
circle?
(r get-radius))
不要忘记先导入图书馆:
,open define-record-types