我之前写过一个有错误的Lisp函数。第一个挑战是弄清楚如何再次查看该功能。这个挑战已经解决了。现在我看到我做错了什么,我想修改已定义函数的内容而不重写整个事情?
看起来像Lisp一样聪明,有一种方法可以做到这一点,我只是不知道它是什么,因为我对这门语言很新。可以这样做吗?
答案 0 :(得分:3)
从这个问题来看,我认为你有一个奇怪的设置。它似乎表明您正在直接在REPL上编写函数。不要那样做。
通常的设置是使用IDE(例如,带有Slime的Emacs)编辑源文件,然后将顶级表单(如函数定义)“发送”到REPL。
答案 1 :(得分:2)
每个有用的REPL都具有历史记录功能。它允许您向前和向后移动输入的历史记录。
当我在REPL中编写代码时,像m-p这样的简单按键可以找回更早的代码。有些IDE甚至可以使用m-在Lisp侦听器中查找源代码。
在大多数REPLS中,您还可以逐步向后搜索。
如果您想要输入日志,请使用功能DRIBBLE ..
还有一些选项,比如从函数中检索代码 - 当Lisp IDE支持时。
答案 2 :(得分:0)
许多Lisp中都有advice
功能,可让您在现有功能之前或之后运行其他代码。但是评论是正确的,如果你还在学习和尝试,你为什么不重写一个函数呢?他们是否在编译周期中向您收费?