Схема Лиспа Определитель матрицы 3 × 3 - PullRequest
0 голосов
/ 02 февраля 2019

Мой код не работает и выдает ошибку: det: arity mismatch;ожидаемое количество аргументов не соответствует данному ожидаемому числу: 4 дано: 9 аргументов ...:

Это мой код:

(define (det3x3 a b c
                d e f
                g h i)
  (+ (* a ( * e i (* h f)))(* b (* d i (* g f)))(* c (* d h (* e g)))))
(display "(det 0 5 -6 8 -11 4 5 1 1) = ")(det 0 5 -6
                                              8 -11 4
                                              5 1 1)

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

определитель = a (ei - fh) - b (di - fg) + c (dh - eg)

(define (det3x3 a b c
                d e f
                g h i)
  (+ (- (* a (- (* e i) (* f h)))
        (* b (- (* d i) (* f g))))
        (* c (- (* d h) (* e g)))))

e, g:

> (det3x3 0 5 -6
          8 -11 4
          5 1 1)
-318 
0 голосов
/ 02 февраля 2019

Вы вызываете функцию det в строке с вызовом display.Измените это на det3x3.det должно быть определено как функция с четырьмя арностями.Я не уверен, какую версию Scheme вы используете;это должно быть что-то еще.

...