想在Scheme48中定义一条记录

时间:2013-02-17 16:23:44

标签: scheme scheme48

我在scheme48中尝试过一个define-record-type的例子,它似乎不起作用。怎么了?

(define-record-type circle
 (make-circle r)
 circle?
 (r get-radius))

给出

Error: undefined variable
   circle
   (package user)

我尝试了其他例子,我得到了类似的结果。我甚至直接尝试了scheme48用户手册。

提前致谢。

1 个答案:

答案 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