gpt4 book ai didi

scheme - 在 Chicken Scheme 中使用 vs Import vs Require vs Require-extension

转载 作者:行者123 更新时间:2023-12-03 23:42:41 27 4
gpt4 key购买 nike

我对 (use) 之间的区别有点模糊和 (import)在鸡。同样,(load) 怎么办? , (require)(require-extension)不同?

这些东西在网站上似乎很少提及。

最佳答案

Loadrequire纯粹是运行时的程序 Action 。 Load接受一个字符串参数并将具有该名称的文件(可以是源代码或编译代码)加载到正在运行的 Scheme 中,以便它定义的任何内容都可用。 Require做同样的事情,但是通过查看 provide 来检查文件是否已经加载。已以相同的名称调用(通常由文件加载时调用)。它们在Scheme编程中比较少见,对应其他语言的插件,需要加载编译时未知的代码。请参阅单元 eval 的手册页更多细节。
Import关注模块而不是文件。它查找必须已经加载的命名模块(但参见下面的 Chicken 5),并使从该模块导出的名称在当前上下文中可见。为了成功导入一个模块,它必须有一个导入库。它是语法,因此模块名称必须显式出现在调用中,并且不能在运行时计算。有关更多详细信息,请参阅模块的手册页。
Require-library做正确的事来加载代码。如果代码已经是运行 Scheme 的一部分,或者是因为它内置在 Chicken 中,它什么也不做。否则它将加载一个核心库单元(如果有),或者调用 require作为最后的手段。在编译时,它会做类似的事情来确保环境在运行时是正确的。有关详细信息,请参阅手册中的“非标准宏和特殊形式”页面。
Use做一个require-library后跟 import同名。这是向 Chicken 程序添加功能的最常用方法。但是,我们写 (import scheme)(import chicken)因为这些模块的功能已经加载。 Require-extensionuse 的确切同义词, 提供 SRFI 55 兼容性。在 R7RS 模式下,import也是 use 的同义词.

鸡 5 更新
Use已从语言中删除,并且 import现在做什么use曾经这样做:它加载(如果需要)然后导入。 Require-extension因此现在是 import 的同义词.

此外,Chicken 特定的过程和宏已被分解为名称如 (chicken base) 的模块。和 (chicken bitwise) .

关于scheme - 在 Chicken Scheme 中使用 vs Import vs Require vs Require-extension,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38924452/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com