首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lisp导入/加载文件

Lisp导入/加载文件
EN

Stack Overflow用户
提问于 2011-03-27 11:49:41
回答 2查看 10.7K关注 0票数 20

在Lisp中有没有办法包含来自其他Lisp文件的代码?

例如,在C++中,我可以这样做:

代码语言:javascript
复制
#include <iostream>
#include <string>
#include "myfile.h"
etc...

在Python中,

代码语言:javascript
复制
import antigravity
import my_module
etc...

有没有Lisp的等价物?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-27 13:11:17

除了Rainer的回答之外:

如果要加载ASDF-systems,请使用:

代码语言:javascript
复制
(asdf:load-system 'my-system)

一些Lisp实现(例如CCL)也允许使用require加载ASDF系统,但该功能依赖于实现。如果您正在使用Slime,并且希望以交互方式加载系统,则可以通过在Slime REPL中键入,l my-system来执行此操作。

我想指出的另一件事是,与Python语言不同,在CL中使用requireload与包(想想“名称空间”)没有任何关系。因此,如果您加载或要求的代码位于其自己的包中,则必须使用其导出的限定符号(foo:bar),或者将这些包包含在您的代码所在的包((defpackage my-package (:use cl package-you-want-to-use ...) ...))中。这不仅不同于Python import,而且也不同于C预处理器#include,后者仅仅是文本包含。

票数 11
EN

Stack Overflow用户

发布于 2011-03-27 12:32:51

使用标准函数,如LOADCOMPILE-FILE

ANSI Common Lisp还有一个函数REQUIRE。

如果您使用as“系统”维护工具作为Common Lisp的扩展,那么您还可以加载或编译整个“系统”。“system”是文件和子系统的集合,为这些文件和子系统定义了加载和编译等操作。

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5447071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档