我是一名有经验的C++/.NET/Java Windows/web程序员,正在尝试学习(通用)Lisp。我正在阅读Practical Common Lisp并使用SLIME。
我可以比较容易地理解Lisp语言,但我在开发机制方面遇到了困难。其中一个问题是如何处理Emacs。我没有任何使用它的经验,并且发现它通常很令人困惑,很难找到/弄清楚命令。
具体问题:
我可以比较容易地理解Lisp语言,但我在开发机制方面遇到了困难。其中一个问题是如何处理Emacs。我没有任何使用它的经验,并且发现它通常很令人困惑,很难找到/弄清楚命令。
具体问题:
- 我知道REPL是什么,但我不太明白如何有效地使用它。当我需要更改一个函数时,我必须重新输入defun并进行更改(繁琐且容易出错)。有没有更好的方法?
- 我如何从在REPL中输入代码变成实际拥有程序?我习惯了C模型,其中你可以查看、编辑和重新编译代码文件。我知道Lisp有类似的东西(通过load函数),但怎样才能将我刚刚定义和测试过的函数放进一个要保存的文件中呢?我希望有比我的当前选择+复制+粘贴更好的方法。
- 你如何调试错误?有没有像其他语言一样能够逐步执行代码的能力?
- 只要S表达式有效,我输入
(defun ...)
就不会出现任何错误。直到我尝试使用它时,我才发现它是无效的。有没有什么方法可以更早地获得错误(例如编译代码)? - 是否有一些更熟悉或让我更容易尝试语言的IDE?
- 我应该转而学习Scheme吗?