首页 > 解决方案 > 定义实现是否依赖于 R7RS?

问题描述

我早就知道这define是可怕的,应该谨慎使用,除非您确定您的实现如何处理它。出于兴趣,我最近打开了 R7RS 并阅读了我能找到的所有内容define,但没有任何东西让我觉得其中任何内容都依赖于实现。在 R7RS 中我是否遗漏了什么或者define不再依赖于实现?

标签: schemer7rs

解决方案


您似乎正在阅读您链接的答案中不存在的内容。

define一直都很好定义,就像定义一样let。大多数人选择define只在模块的顶层使用来创建顶层绑定,但这是一种风格选择——它也能够创建本地绑定,就像let你在“内部”内部和顶部使用它一样主体,例如在过程let或类似的内部。正如另一个答案指出的那样,define在这种情况下,多个s 在技术上等同于 。letrec*


推荐阅读