【发布时间】:2017-08-11 13:16:18
【问题描述】:
我有一个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 类型的参数。
我怎样才能做到这一点?
P.S 我是 Scheme 的新手。
【问题讨论】: