我是一个经验丰富的C++/.NET/Java /web程序员,试图学习(公共) Lisp。我正在阅读实用通用Lisp并使用黏液。
我可以很容易地获得Lisp语言,但我在开发机制方面遇到了困难。我的问题之一就是和Emacs打交道。我没有使用它的经验,并且发现它通常与难以找到/找出的命令混淆。
具体问题:
(defun ...)时不会出现任何错误。直到我试着使用它,我才发现它是无效的。是否有任何方法可以更早地获得错误(即编译代码)?任何提示都将不胜感激!
发布于 2010-12-03 15:27:05
-I得到了REPL,但不太清楚我如何有效地使用它。当我需要更改一个函数时,我必须重新键入defun并进行更改(乏味且容易出错)。我怎么才能做得更好? -How我是否从在REPL中输入代码到实际拥有一个程序?我已经习惯了C模型,在这里,您可以查看、编辑和重新编译代码文件。我知道lisp有类似的东西(通过load函数),但是如何获得我刚刚定义的函数并将其测试到要保存的文件中呢?我希望有一个比我现在的select+copy+paste更好的方法。
装载黏液。在.lisp文件中输入代码,然后运行slime-eval-buffer将所有代码加载到Lisp中。然后,对于特定的函数,您正在对are,C进行黑客攻击,以便在运行的Lisp中重新定义它。
-How调试错误吗?有没有能力像我使用其他语言那样进入代码呢?
是。(trace 'my-function) --或者它的某些变体--当调用my-function时,它将进入调试器。
只要S-表达式是有效的,我在输入( -As .)时不会出现任何错误。直到我试着使用它,我才发现它是无效的。是否有任何方法可以更早地获得错误(即编译代码)?
在某种程度上,这是动态语言(Python、Perl、Ruby、Lisp等)的一个特点。尝试SBCL以获得更好的错误检查。
-Is有一些我更熟悉的IDE,或者允许我更容易地使用这种语言?
Emacs是Lisp的免费IDE。我相信快板有一个免费的版本,但我从来没有试过。
-Should I改为学习计划?
不,计划不是一种实用的语言。
发布于 2010-12-03 16:08:25
我是一个经验丰富的C++/.NET/Java /Web程序员,试图学习(公共) Lisp。我正在阅读实用的通用Lisp和使用黏液。
还可以使用LispWorks个人版来学习Lisp。它有一些局限性和完整的产品是商业化的,但它是相当容易使用。
我得到了REPL,但不太明白如何有效地使用它。当我需要更改一个函数时,我必须重新键入defun并进行更改(乏味且容易出错)。我怎么才能做得更好?
REPL有自己的历史。使用键盘命令,您可以获得先前的输入,并更改它。除此之外,只需编辑一个Lisp文件并从那里编译代码。在Lisp中,您可以编译/eval单个表达式和定义。典型的IDE(如SLIME、LispWorks或快板CL )也允许您从普通的Lisp文本窗口运行代码--此外,还可以在REPLA (也称为侦听器)中执行表达式。
如何从在REPL中输入代码到实际拥有一个程序?我已经习惯了C模型,在这里,您可以查看、编辑和重新编译代码文件。我知道Lisp有类似的东西(通过load函数),但是如何获得我刚刚定义的函数并将其测试到要保存的文件中呢?我希望有一个比我现在的select+copy+paste更好的方法。
复制粘贴在一件事上。但是正确的方法是在编辑器窗口中处理文本文件。可以编译/加载表达式、编辑器缓冲区或相关文件。
如何调试错误?有没有能力像我使用其他语言那样进入代码呢?
见STEP,TRACE及相关。黏液,LispWorks和快板CL有许多额外的特点。
只要S-表达式是有效的,我在输入(defun .)时不会出现任何错误。直到我试着使用它,我才发现它是无效的。是否有任何方法可以更早地获得错误(即编译代码)?
在许多情况下,人们使用编译器。编译器将发现一系列错误,还会注意某些异常(例如,函数不存在或变量尚未定义)。
-Is有一些我更熟悉的IDE,或者允许我更容易地使用这种语言?
LispWorks,快板CL是Windows下最好的。还有一些替代方案,比如科曼·利普 (我不知道它现在还在维护中),甚至还有Ufasoft。
我应该改用学习计划吗?
不怎么有意思。
发布于 2010-12-03 19:34:41
这听起来不像你真的在使用黏液,或者至少不是按照你想要的方式使用。(“必须重新键入defun",”C模型,其中有代码文件“)
我建议看一些黏液屏幕(或者,更好的是,看一个Lisp程序员使用黏液几分钟,如果你有一个方便的话)。黏液网页有几个。
https://stackoverflow.com/questions/4346908
复制相似问题