这告诉Scheme x
的意思是3
:
(define x 3) ; (define <id> <value>)
一切都很好。但是今天我输错了定义:
(define y) ; (define <id>)
令我惊讶的是,没有错误!后来,我在另一个Scheme实现(MIT Scheme)上尝试了这个所谓错误的定义,以确保我看到的东西正确。在MIT计划中,(define y)
似乎也有效。
问题:
定义没有值的东西是否有效?即(define <id>)
特殊格式是否受任何Scheme标准的要求?
在不提供值的情况下定义某些内容有什么用?
答案 0 :(得分:0)
您描述的表单显示在R6RS中。这是该报告要说的:
“ define
的第二种形式等效于
(define <variable> <unspecified>)
其中<unspecified>
是一个无副作用的表达式,返回一个未指定的值。”