私は、MIT SCHEME を実装する SCMUTILS パッケージを少し使用しています。Emacs から実行していますが、関数を使用する際に問題が発生しました。
私のコードは次のとおりです。
(define ((((delta eta) f) q) t)
(let ((fmas (f (+ q (* 0.001 eta))))
(efe (f q)))
(/ (- (fmas t) (efe t)) 0.001)))
(define ((G q) t)
(dot-product (q t) (q t)))
(((((delta test-path) G) test-path) 5))
テストパスは次のとおりです。
(define (test-path t)
(up (+ (* 4 t) 7)
(+ (* 3 t) 5)
(+ (* 2 t) 1)))
そして、私はこのエラーが発生しています:
Loading "mecanica"...
;Application of a number not allowed 2501.2500000000273 (())
何が問題なのですか?
最初は、scheme は構造体をtest-path
数値で割ることができないと思っていたので、ドット積を入れて数値を返す関数にしました。しかし、それはうまくいきませんでした。
関数で式を印刷しようとしましたdelta-eta
が、この部分の実行中にエラーが発生しました。
(/ (- (fmas t) (efe t)) 0.001)))
そして、商の部分を取り出せば、エラーはありません。
確かに私は何かが欠けています。お役に立てれば幸いです。ありがとう!