(define-record-type car-ivar
(フィールド効率 (タンク内可変ガス)))
(define-record-type car-methods
(フィールズ ドライブ! get-gas-in-tank refuel))
(define refuel (ラムダ (cg) ((car-methods-refuel c) g)))
(get-gas-level を定義する
(ラムダ (c) ((car-methods-get-gas-in-tank c))))
(ドライブを定義してください!
(ラムダ (c 距離) ((car-methods-drive! c) 距離)))
(車種定義
(ラムダ (効率)
(let ([car1 (make-car-ivars 効率 0)])
(let ([set-gas-level!
(ラムダ (ガス) (car-ivars-gas-in-tank-set! car1 ガス))]
[ガスレベル
(ラムダ () ((car-ivars-gas-in-tank car1)))])
(車を作る方法
;;ドライブ!
(ラムダ (距離)
(設定ガスレベル!
(- (get-gas-level)
(/効率距離)))
;;ガスレベルを取得
(ガスレベルを取得)
;;給油
(ラムダ (ガス 1)
(設定ガスレベル!
(+ (get-gas-level) ガス1)))))))))
さて、私はこのコードを持っています。テストケースを実行しようとすると
(ハイブリッド定義 (make-car 50))私は得る
例外: #procedure コンストラクターへの引数の数が正しくありませんエラー。そして、それがどこから来ているのかよくわかりません。