应用类型错误?
Wrong type to apply?
我玩 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
我期待这个 return 6. "apply" 如何进入这个?
这个错误是什么意思?
Scheme 中的圆括号不仅仅是一个分组结构。它们通常表示功能应用程序。
该错误与您 define
的正文有关。具体来说,
((* one two))
表示
Call the result of multiplying one by two
JS 等价物类似于
function a (one, two) { (one * two)(); }
您很可能打算将该函数定义为
(define (a one two) (* one two))
这只是乘法,应该可以正常工作。
我玩 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
我期待这个 return 6. "apply" 如何进入这个? 这个错误是什么意思?
Scheme 中的圆括号不仅仅是一个分组结构。它们通常表示功能应用程序。
该错误与您 define
的正文有关。具体来说,
((* one two))
表示
Call the result of multiplying one by two
JS 等价物类似于
function a (one, two) { (one * two)(); }
您很可能打算将该函数定义为
(define (a one two) (* one two))
这只是乘法,应该可以正常工作。