当前位置:  开发笔记 > 运维 > 正文

关于Lisp和包的新手问题

如何解决《关于Lisp和包的新手问题》经验,为你挑选了2个好方法。

如果您不关心并且只想查看问题,这里的背景故事会跳到底部.

所以我在LISP玩了一会儿.一些基本功能,一些类和文件IO.当我遇到这篇文章时:

http://www.adampetersen.se/articles/lispweb.htm

我很高兴尝试将lisp用于Web应用程序.我去下载软件包,但是对于我的生活,我不知道如何将它们加载到我的Allegro IDE中.

嗯......好吧,hunchentoot网站说很多基本软件包都在LispWorks中.所以我下载了.仍然不确定如何获取我下载到这些IDE中的软件包的源代码.他们似乎有包的二进制文件?

哦,也许生病切换到我的ubuntu服务器和apt-获取所有软件包和设置粘液(我之前没有使用它因为我只是想学习lisp.同时学习emacs和lisp似乎真的令人生畏).我倾向于获得所需的所有软件包并加载粘液,并且再次出现同样的问题.

我挖了一些更多,看到这个程序叫做ASDF.看起来ASDF是lisp的某种包构建器?我不知道这看起来有点令人困惑.我现在就要放弃了.


如果你还在读这里,这是我的问题.
1.如何将这些包的源加载到我的lisp环境中.尝试学习lisp并不是太难,但有关环境的信息却很少.我是否需要构建我使用ASDF下载的软件包.
2.有没有一种简单的方法可以让人们在lisp中启动并运行,而无需提前大量学习所有工具?



1> Leslie P. Po..:

嗯......好吧,hunchentoot网站说很多基本软件包都在LispWorks中.所以我下载了.

这只是意味着作者在Hunchentoot中编写了许多特定于Lispworks的代码.这并不意味着Hunchentoot仅适用于Lispworks.

仍然不确定如何获取我下载到这些IDE中的软件包的源代码.

您需要使用ASDF.

他们似乎有包的二进制文件?

这不太可能.

哦,也许生病切换到我的ubuntu服务器和apt-获取所有的软件包和设置slime>(我之前没有使用它,因为我只是想学习lisp.同时学习emacs和lisp似乎真的令人生畏).

不要那么做.您不需要使用Emacs或Slime.

我倾向于获得所需的所有软件包并加载粘液,并且再次出现同样的问题.

要快速获得结果,请尝试使用clbuild:http://common-lisp.net/project/clbuild/

我挖了一些更多,看到这个程序叫做ASDF.看起来ASDF是lisp的某种包构建器?我不知道这看起来有点令人困惑.

ASDF有点像Common Lisp应用程序的Makefile.

我现在就要放弃了.

这是你可以做到的最糟糕的事情(在这个或任何其他方面).我很高兴你决定在这里发布你的问题.

    如何将这些包的源加载到我的lisp环境中.尝试学习lisp并不是太难,但有关环境的信息却很少.我是否需要构建我使用ASDF下载的软件包.

clbuild应该为您提供所需的一切,但如果您不想使用它,这里有一些提示:

    CLISP,SBCL:ASDF是你的Lisp的一部分.跑(require :asdf).Lispworks,Allegro:您需要下载并加载ASDF.在某处保存asdf.lisp然后运行(load "/path/to/asdf.lisp").

    对于每个库/应用程序(ASDF中的"系统"说话),您需要下载并将其解压缩到某个地方.重复,直到满足所有依赖关系.记下这些地方(目录).

    对于步骤#2中的每个位置,将该位置添加到ASDF注册表:(push "/path/to/dir/" asdf:*central-registry*).不要忘记尾随斜线.

    使用加载系统(asdf:oos 'asdf:load-op :system-name).

    有没有一种简单的方法可以让人们在lisp中启动并运行,而无需在前期学习所有工具时加快大量时间?

见上文 - 使用clbuild.



2> Svante..:

Ubuntu中最快捷的方法是使用该发行版中包含的软件包.如果你只是想尝试一些东西,那就"好",但这些版本通常比较陈旧.我会建议包装sbclslime.如果你还不知道emacs,你可以通过它的内置教程C-h t(按Control-h,release,然后按t)快速进入.

然后你可以启动emacs,启动slime(通过M-x slime),打开一个lisp文件(C-x C-f ~/lisp/first-try.lisp),然后你就可以开始了.作为Lisp的教程,我认为Practical Common Lisp是一本非常好的书,它是免费提供的.

现在,当您开始喜欢Lisp时,您可能需要更多最新的软件包.我建议使用clbuild(请参阅链接以获取更多信息,包括常见问题解答).然后,您还可以构建一个新的sbcl(由发行版本引导).

顺便说一下,ASDF只是一个系统定义设施.它不知道如何下载软件包,它只知道如何将系统加载到正在运行的Lisp映像中.换句话说,它只是解决了自动加载某些"系统"(库)按正确顺序组成的多个文件的问题.最新版本允许通过简单的方式加载包(在安装之后,例如通过clbuild)

(asdf:load-sys 'foo)

较旧的版本显示了ASDF的内部操作概念:

(asdf:operate 'asdf:load-op 'foo)

以上load-sys是此常见用例的简写.更多信息(可以说,您需要了解的所有信息)在ASDF入门指南中.ASDF也包含在SBCL中.

当您加载源文件时,它会自动编译(生成.fasl文件(快速加载)),以便下次加载速度更快.

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有