【发布时间】:2018-05-07 07:28:35
【问题描述】:
我知道(begin expr1 expr2 ...) 将计算所有表达式并返回最后一个计算的表达式。
我发现在 Chez Scheme 中允许使用 begin 而不使用像这样的表达式:(begin)。我正在使用 Chez Scheme 作为我学习的一部分。当我在控制台(begin) 中写入时,它不会发送语法错误,它只会显示任何内容,就像我收到void 一样。
我的问题是,那会返回什么?
我认为这是您可以通过运行(void) 获得的 void 对象。
然而,当我测试它时,我意识到它不是。
我正在学习 Chez Scheme 作为我正在学习的编译器课程的一部分,我需要实现一个编译器的一部分,它可以处理特殊的词 begin。所以我需要知道为什么这是可能的,以及这个函数返回什么。
编辑:
我正在添加关于这个主题的this link。 我无法完全理解答案。另外,他没有提到返回类型。
【问题讨论】:
-
如果您正在实现编译器的一部分,您对语言形式含义的定义应该来自规范,而不是来自现有行为。对吗?
标签: compiler-construction scheme expression-evaluation language-implementation chez-scheme