Scheme 方案-';应用:非程序';错误
我有以下计划:Scheme 方案-';应用:非程序';错误,scheme,Scheme,我有以下计划: (define (myFunc x e) (let loop ((n x) (m e) (acc 2)) (cond ( (eqv? (abs (- ( * (expt -1 (+ acc 1)) (/ (expt n acc) acc) ) ( * (expt -1 (+ acc 1)) (/ (expt n (- acc 1) ) (- acc 1)) ) )) m) (begin (display "result is: "
(define (myFunc x e)
(let loop ((n x) (m e) (acc 2))
(cond
( (eqv? (abs (- ( * (expt -1 (+ acc 1)) (/ (expt n acc) acc) ) ( * (expt -1 (+ acc 1)) (/ (expt n (- acc 1) ) (- acc 1)) ) )) m)
(begin (display "result is: ") (display acc) #f))
(else
(loop (n) (m) (+ acc 1))
))
))
您可以看到它计算值,检查是否相等,如果不成功,则重复循环
但是,当我运行它时,我得到了错误:
应用:不是一个程序期望一个可以 应用于参数
给定值:0.5
参数…:[无] 指向“else”语句后的循环(n)部分。 为什么会这样
谢谢
n
和m
是(我想)数字,而不是程序。你不能给他们打电话。然而,当你说(n)
和(m)
时,这正是你想要做的。它相当于JavaScript中的表达式n()
和m()
记住,在Scheme中,
(foo-bar-baz)
相当于JS中的foo(bar,baz)
,而(foo)
相当于foo()
,而((foo))
相当于foo()
。你不能随意添加括号。n
和m
是(我想)数字,而不是过程。你不能给他们打电话。然而,当你说(n)
和(m)
时,这正是你想要做的。它相当于JavaScript中的表达式n()
和m()
记住,在Scheme中,
(foo-bar-baz)
相当于JS中的foo(bar,baz)
,而(foo)
相当于foo()
,而((foo))
相当于foo()
。你不能随意添加括号。所以我想我只需要用m和n调用循环而不需要括号?所以我想我只需要用m和n调用循环而不需要括号?