-1

アプリケーション: 手順ではありません。指定された引数に適用できる手順が必要です: 2 つの引数...: -4 -6 12 -3 1 2 7

次のコードを考えると、このエラーはどういう意味ですか?

(define (det2x2 a b c d)(- (* a d) (* b c)))
(define (det2x2prod a1 b1 c1 d1 a2 b2 c2 d2)  (det2x2 (+ (* a1 a2)(* b1 c2))
                                                      (+   (* a1 b2)(* b1 d2))
                                                      (+   (* c1 a2)(* d1 c2))
                                                      (+   (* c1 b2) (* d1 d2))))
(det2x2prod 2 (- 4)(- 6) 12(- 3) 1 2 7)
(define (prod-inv a1 b1 c1 d1 a2 b2 c2 d2) not (= 0 (det2x2prod (a1 b1 c1 d1 a2 b2 c2 d2))))
(define (prod-inv-2 a1 b1 c1 d1 a2 b2 c2 d2)not(= 0 (det2x2(a1 b1 c1 d1)(det2x2(a2 b2 c2 d2)))))
(prod-inv   2 (- 4) (- 6) 12 (- 3) 1 2 7)
(prod-inv-2 2 (- 4)(- 6) 12 (- 3) 1 2 7)

*Scheme を使った初日です

4

1 に答える 1

2

多くの構文エラーがあります - 括弧の欠落、誤った括弧など。次のコードを書く前に各手順を徹底的にテストする必要があります。テストを開始するコードがたくさんあるまで待ってはいけません。これを試して:

(define (det2x2 a b c d)
  (- (* a d) (* b c)))

(define (det2x2prod a1 b1 c1 d1 a2 b2 c2 d2)
  (det2x2 (+ (* a1 a2) (* b1 c2))
          (+ (* a1 b2) (* b1 d2))
          (+ (* c1 a2) (* d1 c2))
          (+ (* c1 b2) (* d1 d2))))

(det2x2prod 2 -4 -6 12 -3 1 2 7)

(define (prod-inv a1 b1 c1 d1 a2 b2 c2 d2)
  (not (= 0 (det2x2prod a1 b1 c1 d1 a2 b2 c2 d2))))

(define (prod-inv-2 a1 b1 c1 d1 a2 b2 c2 d2)
  (not (= 0 (det2x2 a1 b1 c1 d1) (det2x2 a2 b2 c2 d2))))

(prod-inv   2 -4 -6 12 -3 1 2 7)
(prod-inv-2 2 -4 -6 12 -3 1 2 7)

と で何をしようとしていたprod-invprod-inv-2ですか? コンパイル エラーを修正しましたが、割り当てで指定されたアルゴリズムが実装されていることを確認してください。prod-inv-2正しくないようです。

于 2013-08-27T16:23:13.723 に答える