Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您可以使用emacs在common lisp中编程吗?_Emacs_Lisp_Common Lisp_Sbcl_Quicklisp - Fatal编程技术网

您可以使用emacs在common lisp中编程吗?

您可以使用emacs在common lisp中编程吗?,emacs,lisp,common-lisp,sbcl,quicklisp,Emacs,Lisp,Common Lisp,Sbcl,Quicklisp,在我的lisp编程课程中,我使用了lispworks IDE试用版, 这是一个非常好的IDE,但它仍然是一个试用版。 我搜索了一个新的IDE。 我看了这个视频 其中,他使用slime sbcl和quicklisp在emacs上使用公共lisp编程 我的问题是,这是怎么可能的?emacs不是有自己的lisp方言(称为emacs lisp)吗?还是它们彼此独立?是一个可扩展编辑器(可在Elisp中编写脚本)。读它 Its(在emacs端用Elisp编写,在Lisp系统端用Common Lisp编写)

在我的lisp编程课程中,我使用了lispworks IDE试用版, 这是一个非常好的IDE,但它仍然是一个试用版。 我搜索了一个新的IDE。 我看了这个视频

其中,他使用slime sbcl和quicklisp在emacs上使用公共lisp编程

我的问题是,这是怎么可能的?emacs不是有自己的lisp方言(称为emacs lisp)吗?还是它们彼此独立?

是一个可扩展编辑器(可在Elisp中编写脚本)。读它

Its(在emacs端用Elisp编写,在Lisp系统端用Common Lisp编写)能够与常见的Lisp实现交互。但是你需要安装它。读这本书。一些Linux发行版正在打包slime(例如Debian有一些
slime
package)

Emacs有许多其他模式(即扩展,在Elisp中提供),能够与各种其他编程语言实现和其他应用程序(shell、电子邮件、版本控制等)交互

顺便说一句,免费提供。读一下。也是

使用SBCL不需要任何IDE(或最常见的Lisp实现…)。您可以使用(在
emacs
内部或外部)和一些编辑器(例如,甚至没有
slime
-,…)。当我使用SBCL尝试一些简单的代码时,我不使用SLIM(只使用REPL,可能是从某个编辑器复制/粘贴,然后在Lisp中编辑Lisp文件)。黏液很方便,但却是一种奢侈品,你可以避免。但是,使用一些能够匹配括号(以及跳过lisp注释)的编辑器更容易。但是,您可以编写一些常见的Lisp程序——即使有数千行代码和几十个文件——即使使用与Windows(或Linux上的Leafpad或
nano
一样简单的代码。您的编辑器不需要“了解”Lisp(例如,它有一些模式或一些语法变体),因为Lisp语法非常规则和简单

请注意,编程语言是一种规范(在某些技术报告中给出,通常使用英语-the),不应因其实现而混淆(例如,某些软件,如SBCL或Clisp)

实际上,我用emacs编写了所有Lisp程序,但没有slime。我开发了一个Lisp方言()并实现了它——这是我放弃的自由软件,但你仍然可以使用它——使用emacs但不使用Slime。所以Slime实际上并不是一个要求,即使是编写一个包含数万行的Lisp程序。黏液是一种奢侈品,你可以避免。emacs的功能已经足够了(甚至可以编写一个包含数千行公共Lisp代码的程序)

另外,我用Common Lisp编写的最大的程序是GCC MELT的预引导原始编译器,因为我在GCC MELT中丢失了所有的大型程序(因为我不再需要它)。IIRC那个东西-预引导熔化-有十几行数千行的公共Lisp。GCC熔体的温度超过120KLOC


PPS如果您是新手,我建议您不要在Common Lisp中使用任何IDE。只需使用REPL和一些编辑器(当然还有一个很好的公共Lisp实现,比如SBCL)。把粘液留给口齿不清的专家。只有在您能够熟练使用Common Lisp(及其REPL)时才开始使用slime。

设置Emacs和SBCL可能会花费您一些时间。 我强烈推荐你——可以说是你的弟弟。 Lispbox是为“开箱即用”的lisp环境创建的,它使用的emacs安装了slime模式,可以与sbcl和quicklisp连接(适用于Peter Seibel编写的“实用通用lisp”的读者)——一种为lisp设置的emacs(或者从lisp初学者程序员的角度来看,包括emacs的电池)。 我一直在搜索Lispbox的这个“更新”——虽然同时手动安装了sbcl、quicklisp和slime——实际上我认为Lispbox站点应该链接并提示portacle,因为这是Lispbox的最新版本——这会节省我的时间。Lisp社区应该宣传portacle。 (两者都为您提供了现成的emacs,然后连接到sbcl,还安装了quicklisp-quicklisp for Lisp类似于pip for Python,一个包管理器,您可以通过它从中央存储库拉取和安装Lisp包-或者类似于melpa for emacs Lisp)。 (quicklisp是其核心asdf,一种旧的软件包管理器,但现在没有人直接使用asdf安装软件包,而是通过quicklisp进行安装)

对于Windows用户,我强烈建议使用哪种方法(与当前版本的portacle For Windows不同……我希望他们能修复它)。作者还写了一篇nice(2016年,但用德语)

为了更容易地进入非常复杂的
emacs
,我也尝试了几次来适应它,我强烈推荐您这是我为本主题找到的最好的入门级教程之一。另外,他的教程可能会给你一个好的开始。 我总结了在emacs中编写公共lisp时经常使用的一些键绑定(一组最小的键绑定)。它真的很小。谁发现更多,谁也可以给我更多的小费

如果您真的开始使用Lisp编程,那么
Common Lisp HyperSpec
会很有帮助-我想说,它是一个必要的工具-还有Edi Weitz发起的Lisp食谱页面,还有他关于Common Lisp食谱的书。 然而,由于Lisp与所有源于
C
的语言有很大的不同,我强烈建议您从sth开始,它将更详细地解释Lisp是什么以及它是如何工作的。彼得·塞贝尔(Peter Seibel)的《实用通用Lisp》和康拉德·巴尔斯基(Conrad Barski)的《Lisp之地》(Land of Lisp)的组合是我的入门之作。但是,尽管作者做了非常出色的工作,我认为仍然需要为C语言程序员编写一个通俗易懂的Lisp简介

顺便说一句,如果您发现
vim
更易于使用,那么在