我一直在使用Scheme约10分钟,偶然发现了这个错误:
scheme@(guile-user) [2]> (define (a one two) ((* one two)))
scheme@(guile-user) [2]> (a 2 3)
ERROR: In procedure 6:
ERROR: Wrong type to apply: 6
Run Code Online (Sandbox Code Playgroud)
我期待这回到6.如何"申请"进入这个?这个错误是什么意思?
Scheme中的括号不仅仅是一个分组结构.它们通常意味着功能应用.
错误与你的身体有关define.特别,
((* one two))
Run Code Online (Sandbox Code Playgroud)
手段
调用一两乘的结果
JS等价物是类似的
function a (one, two) { (one * two)(); }
Run Code Online (Sandbox Code Playgroud)
您最有可能将该功能定义为
(define (a one two) (* one two))
Run Code Online (Sandbox Code Playgroud)
这只是乘法,应该可以正常工作.