没有值的定义不会失败

时间:2018-10-28 14:09:18

标签: scheme

这告诉Scheme x的意思是3

(define x 3)  ; (define <id> <value>)

一切都很好。但是今天我输错了定义:

(define y)  ; (define <id>)

令我惊讶的是,没有错误!后来,我在另一个Scheme实现(MIT Scheme)上尝试了这个所谓错误的定义,以确保我看到的东西正确。在MIT计划中,(define y)似乎也有效。

问题:

  1. 定义没有值的东西是否有效?即(define <id>)特殊格式是否受任何Scheme标准的要求?

  2. 在不提供值的情况下定义某些内容有什么用?

1 个答案:

答案 0 :(得分:0)

您描述的表单显示在R6RS中。这是该报告要说的:

define的第二种形式等效于

(define <variable> <unspecified>)

其中<unspecified>是一个无副作用的表达式,返回一个未指定的值。”