我在 scheme48 中尝试了一个定义记录类型的示例,但它似乎不起作用。怎么了?
(define-record-type circle
(make-circle r)
circle?
(r get-radius))
给
Error: undefined variable
circle
(package user)
我尝试了其他示例,得到了类似的结果。我什至直接从 scheme48 用户手册中尝试了一个示例。
提前致谢。
在手册中说明 arecord
定义如下:
(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