在常见的lisp中不推荐使用require和*modules*?

yeh*_*nan 10 lisp common-lisp

Common Lisp HyperSpec表示不推荐使用require和****模块****.

但我仍然看到我们一直都在使用require.我们应该用什么?

Rai*_*wig 12

他们很久以前就被弃用了.该标准于1994年出版.后果是什么?没有,因为没有新标准发布,也没有新的标准正在制定中.

因此,如果您的Common Lisp实现提供了PROVIDE,REQUIRE和*MODULES*的有用定义和实现,那么请使用它.

还有其他工具关心加载和创建库和应用程序(通常称为"系统").通常它们具有某种接口,因此(REQUIRE'SONOME-SYSTEM)加载该系统,因此在加载该系统之后它已被"提供".

  • @omouse:'模块'无需更换,AFAIK.请参阅:http://www.lispworks.com/documentation/HyperSpec/Issues/iss296_w.htm.还建议添加一个SYSTEM设施,例如Kent Pitman:http://www.nhplace.com/kent/CL/Issues/defsystem.html (3认同)
  • @yehnan,有时您会意识到所描述的功能不是很有用或缺乏细节,但没有意愿或能力指定更好的功能。标准委员会讨论了几个扩展领域,但失败了,没动力了,没钱了,没了利益相关方…… (2认同)

Rus*_*ell 5

ASDF似乎是一种非常流行且现代的加载系统的方式。

加载 foo:

(asdf:加载系统:foo)

在 ABCL、Clozure CL、CMUCL、ECL 和 SBCL 下,它挂钩到 cl:require。所以 cl:require 似乎没问题。