Scheme 申请的类型错误?

Scheme 申请的类型错误?,scheme,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 我原以为这会回来的。“应用”是如何进入这一过程的? 这个错误是什么意思?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
我原以为这会回来的。“应用”是如何进入这一过程的?
这个错误是什么意思?

Scheme中的括号不仅仅是一个分组结构。它们通常指函数应用

该错误与
定义的主体相关。具体来说,

((* one two))
意味着

调用1乘以2的结果

JS等价物类似于

function a (one, two) { (one * two)(); }
您很可能打算将该函数定义为

(define (a one two) (* one two))

这只是乘法,应该可以很好地工作。

这要简单得多,而且做得也一样:
(定义a*)
试试,特别是关于。