Scheme &引用;应用:非程序“;行列式码

Scheme &引用;应用:非程序“;行列式码,scheme,non-procedure-application,Scheme,Non Procedure Application,应用:不是一个程序; 应为可应用于参数的过程 给定:2 论据。。。: -4 -6 12 -3 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)) (

应用:不是一个程序; 应为可应用于参数的过程 给定:2 论据。。。: -4 -6 12 -3 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)

*这是我使用scheme的第一天

您有很多语法错误-缺少括号、错误括号等。在编写下一个过程之前,您应该彻底测试每个过程,不要等到有很多代码才开始测试。试试这个:

(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-inv
prod-inv-2
做什么?我修复了编译错误,但确保它们实现了作业中给出的算法
prod-inv-2
似乎不正确。

堆栈溢出不是完成作业的地方。我向您展示了如何解决语法错误,但如何正确实现算法则取决于您