申请号码不准(方案)
Application of a number not allowed (Scheme)
我正在使用实现 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
这样的结构除以一个数,所以我把点积做成一个returns一个数的函数;但这没有用。
我试过在 delta-eta
函数中打印表达式,但在执行此部分时出现错误:
(/ (- (fmas t) (efe t)) 0.001)))
如果我去掉商部分,就没有错误。
我肯定漏掉了什么。希望你能帮忙。谢谢!
假设这个
(define ((((delta eta) f) q) t)
(let ((fmas (f (+ q (* 0.001 eta))))
(efe (f q)))
(/ (- (fmas t) (efe t)) 0.001)))
相当于这个
(define (delta eta)
(lambda (f)
(lambda (q)
(lambda (t)
(let ((fmas (f (+ q (* 0.001 eta))))
(efe (f q)))
(/ (- (fmas t) (efe t)) 0.001))))))
然后 (((((delta test-path) G) test-path) 5))
乘以 0.001
和 test-path
在 (* 0.001 eta)
。而且在 G
内部,它期望 q
作为一个过程,但是,fmas
正在从 G
中检索一个过程,将一个数字传递给 G
。因此,这将尝试应用计算的数字传递 t
.
我正在使用实现 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
这样的结构除以一个数,所以我把点积做成一个returns一个数的函数;但这没有用。
我试过在 delta-eta
函数中打印表达式,但在执行此部分时出现错误:
(/ (- (fmas t) (efe t)) 0.001)))
如果我去掉商部分,就没有错误。
我肯定漏掉了什么。希望你能帮忙。谢谢!
假设这个
(define ((((delta eta) f) q) t)
(let ((fmas (f (+ q (* 0.001 eta))))
(efe (f q)))
(/ (- (fmas t) (efe t)) 0.001)))
相当于这个
(define (delta eta)
(lambda (f)
(lambda (q)
(lambda (t)
(let ((fmas (f (+ q (* 0.001 eta))))
(efe (f q)))
(/ (- (fmas t) (efe t)) 0.001))))))
然后 (((((delta test-path) G) test-path) 5))
乘以 0.001
和 test-path
在 (* 0.001 eta)
。而且在 G
内部,它期望 q
作为一个过程,但是,fmas
正在从 G
中检索一个过程,将一个数字传递给 G
。因此,这将尝试应用计算的数字传递 t
.