错误的类型适用?

mik*_*son 3 scheme

我一直在使用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.如何"申请"进入这个?这个错误是什么意思?

Ina*_*thi 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)

这只是乘法,应该可以正常工作.