首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习Windows/C++程序员的常用Lisp技巧

学习Windows/C++程序员的常用Lisp技巧
EN

Stack Overflow用户
提问于 2010-12-03 15:17:30
回答 4查看 692关注 0票数 6

我是一个经验丰富的C++/.NET/Java /web程序员,试图学习(公共) Lisp。我正在阅读实用通用Lisp并使用黏液

我可以很容易地获得Lisp语言,但我在开发机制方面遇到了困难。我的问题之一就是和Emacs打交道。我没有使用它的经验,并且发现它通常与难以找到/找出的命令混淆。

具体问题:

  • 我得到了REPL,但我不太明白如何有效地使用它。当我需要更改一个函数时,我必须重新键入defun并进行更改(乏味且容易出错)。我怎么才能做得更好?
  • 如何从在REPL中输入代码到实际拥有一个程序?我已经习惯了C模型,在这里,您可以查看、编辑和重新编译代码文件。我知道Lisp有类似的东西(通过load函数),但是如何获得我刚刚定义的函数并将其测试到要保存的文件中呢?我希望有一个比我现在的select+copy+paste更好的方法。
  • 如何调试错误?有没有能力像我使用其他语言那样进入代码呢?
  • 只要S-表达式是有效的,我在输入(defun ...)时不会出现任何错误。直到我试着使用它,我才发现它是无效的。是否有任何方法可以更早地获得错误(即编译代码)?
  • 有什么IDE可以让我更熟悉或者让我更容易地使用语言吗?
  • 我应该转而学习方案吗?

任何提示都将不胜感激!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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改为学习计划?

不,计划不是一种实用的语言。

票数 6
EN

Stack Overflow用户

发布于 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。

我应该改用学习计划吗?

不怎么有意思。

票数 2
EN

Stack Overflow用户

发布于 2010-12-03 19:34:41

这听起来不像你真的在使用黏液,或者至少不是按照你想要的方式使用。(“必须重新键入defun",”C模型,其中有代码文件“)

我建议看一些黏液屏幕(或者,更好的是,看一个Lisp程序员使用黏液几分钟,如果你有一个方便的话)。黏液网页有几个

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

https://stackoverflow.com/questions/4346908

复制
相关文章

相似问题

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