(define-record-type car-ivars (现场效率(罐中可变气体))) (定义记录型汽车方法 (现场驾驶!在油箱中加油)) (定义加油 (lambda (cg) ((car-methods-refuel c) g))) (定义get-gas-level (lambda (c) ((car-methods-get-gas-in-tank c)))) (定义驱动器! (lambda (c distance) ((car-methods-drive!c) distance))) (定义制造汽车 (λ(效率) (let ([car1 (make-car-ivars 效率 0)]) (让([设置气体级别! (lambda (gas) (car-ivars-gas-in-tank-set!car1 gas))] 【气级 (lambda () ((car-ivars-gas-in-tank car1)))]) (制造汽车方法 ;;驾驶! (λ(距离) (设置气体水平! (- (get-gas-level) (/效率距离))) ;;获取气体水平 (获取气体水平) ;;加油 (λ(气体1) (设置气体水平! (+ (get-gas-level) gas1)))))))))
好的,所以我有这个代码。当我尝试运行我的测试用例时
(定义混合动力(制造汽车 50))我得到一个
例外:#procedure 构造函数的参数数量不正确错误。而且我不太确定它来自哪里。