在方案中显示和 return 某些内容的程序?

Procedure to display and return something in scheme?

我希望我的程序打印一些东西,然后 return 打印一些东西。我试过这个

(define (print x)
    ((display x)
     x))

难道不应该直接说这个过程首先显示 x 然后 return 就像它在过程结束时所表达的那样吗?好吧,显然这是错误的,而且我对 Scheme 有一些非常基本的东西不了解。所以任何人,帮助我理解这一点。谢谢

发布的代码括号过多。在Lisp中,括号是有意义的,表示函数调用,而不仅仅是操作数的分组

使用 ((display x) x),您的代码尝试调用 作为函数 调用 (display x) 返回的(在 R6RS 方案中未指定)值,使用x 的值作为该函数调用中的参数。相反:

(define (print x)
  (display x)
  x)

有效。

只需删除多余的括号即可。它们并非无害。