我有一个point
定义如下的记录类型:
(define-record-type point
(make-point x y)
point?
(x point-x)
(y point-y)
)
现在,我想扩展point
记录类型并定义一个新的记录类型,如下所示:
(define-record-type cpoint
(make-cpoint color)
cpoint?
(color cpoint-color)
(parent point)
)
当我在方案外壳中运行上述定义时,一切正常。我可以point
正确地构造类型。但是,当我尝试cpoint
按如下方式构造类型时:
(define p2 (make-cpoint 8 9 'red))
我收到以下错误:
; ...rfi/9/record.rkt:100:28: 数量不匹配;;预期的参数数量与给定数量不匹配;预期:1;给定:3;[,bt 用于上下文]
我认为既然cpoint
是 的子级,它应该在其构造函数中point
接受类型的参数。point
我怎样才能使这项工作?
PS我是Scheme的新手。