scheme - 定义实现是否依赖于 R7RS?
问题描述
我早就知道这define
是可怕的,应该谨慎使用,除非您确定您的实现如何处理它。出于兴趣,我最近打开了 R7RS 并阅读了我能找到的所有内容define
,但没有任何东西让我觉得其中任何内容都依赖于实现。在 R7RS 中我是否遗漏了什么或者define
不再依赖于实现?
解决方案
您似乎正在阅读您链接的答案中不存在的内容。
define
一直都很好定义,就像定义一样let
。大多数人选择define
只在模块的顶层使用来创建顶层绑定,但这是一种风格选择——它也能够创建本地绑定,就像let
你在“内部”内部和顶部使用它一样主体,例如在过程let
或类似的内部。正如另一个答案指出的那样,define
在这种情况下,多个s 在技术上等同于 。letrec*
推荐阅读
- flutter - 在颤振中使用 AudioPlayer 会出现此错误
- python-3.x - supervisord/celery/python - “动态” 环境变量 - “全局” 与 “本地” - DRY
- r - R中的公式没有在循环中正确更新
- assembly - 多输入按键宏
- python - MLFlow - 在 Windows 10 上运行“mlflow ui”抛出文件未找到错误
- html - 避免不自然的断词
- c# - 从 C# web api 代码访问 Primavera P6 数据
- localization - 在 .NET 5.0 中删除了 ResourceManagerWithCultureStringLocalizer 类和 WithCulture 方法
- reactjs - 当通过钩子更新全局状态时,React 组件按什么顺序重新渲染?
- hive - 从当前行中减去前一行值