lisp - Scheme中 `define`的返回值是多少?

标签 lisp scheme racket r5rs

我很好奇Scheme中define的返回值。所以我在 Racket 中写了以下几行

#lang r5rs
(display (define a 3))

得到错误

 define: not allowed in an expression context in: (define a 3)

我有两个问题:

  1. 是不是说define没有返回值?
  2. 根据 R5RS,define 不是表达式。这是一个程序结构。是不是只有表达式有返回值,其他形式没有?

最佳答案

"If a tree falls in a forest and no one is around to hear it, does it make a sound?"

在可以有意义地获得返回值的任何上下文中使用 define 都是无效的。所以它是否有返回值是没有意义的;你永远无法观察到它。

关于lisp - Scheme中 `define`的返回值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18799032/

相关文章:

stream - 延迟评估期间的内存

recursion - 复制长度函数的有效方法

方案递归(十进制到八进制)

macros - 方案宏产生意外结果

command-line - 从 DrRacket 读取命令行参数

recursion - Racket中递归的堆栈溢出

LISP 更好理解多级列表

performance - Scheme:为什么Internal Definition比External Definition快?

list - LISP——整数序列

list - Lisp S 表达式和列表长度/大小