Snu*_*fer -1 syntax scheme function definition function-call
我希望我的程序打印一些东西,然后返回那个东西。我试过这个
(define (print x)
((display x)
x))
Run Code Online (Sandbox Code Playgroud)
不是应该直接说这个过程x首先显示然后返回它,就像它在过程结束时所表达的那样吗?好吧,显然这是错误的,而且我对Scheme 有一些非常基本的了解。所以任何人,帮助我理解这一点。谢谢
发布的代码有太多括号。在 Lisp 中,括号是有意义的,表示函数调用,而不仅仅是操作数的分组。
使用((display x) x),您的代码尝试将调用返回的值(在 R6RS 方案中未指定)作为函数调用(display x),并将 的值x作为该函数调用中的参数。反而:
(define (print x)
(display x)
x)
Run Code Online (Sandbox Code Playgroud)
作品。
只需删除无关的括号即可。它们并非无害。