(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 コンストラクターへの引数の数が正しくありませんエラー。そして、それがどこから来ているのかよくわかりません。