读书人

施用 Cusp Eclipse 插件开发 Lisp 应用

发布时间: 2012-10-17 10:25:46 作者: rapoo

使用 Cusp Eclipse 插件开发 Lisp 应用程序
施用 Cusp Eclipse 插件开发 Lisp 应用程序施用 Cusp Eclipse 插件开发 Lisp 应用程序施用 Cusp Eclipse 插件开发 Lisp 应用程序施用 Cusp Eclipse 插件开发 Lisp 应用程序 平均分 (共 3 个评分 )


单击已添加的新远程站点旁边的复选框并单击 Finish(参见图 2)。


图 2. 选择 Cusp Eclipse Update Site
施用 Cusp Eclipse 插件开发 Lisp 应用程序

系统将显示另一个窗口,在该窗口中需要展开 Cusp Eclipse Update Site 并选择 Cusp,如下所示:


图 3. 选择要安装的功能
施用 Cusp Eclipse 插件开发 Lisp 应用程序

单击 Next。然后阅读许可证协议并单击 I accept the terms in the license agreement 接受许可证协议,然后单击 Next。确保选中所有库,如下所示,然后再次单击 Next


图 4. 选择可选功能
施用 Cusp Eclipse 插件开发 Lisp 应用程序

最后一个页面将显示要安装功能的安装汇总。单击 Finish。插件及其组件将下载并安装。下载后,您将收到一则警告,表明将要安装一个未签名的功能。单击 Install all。在安装结束时,系统将询问您是否要重新启动 Eclipse;请单击 Yes

您已经安装了 Eclipse Cusp 插件。接下来,将创建一个 Lisp 项目。


单击 Finish 后,将创建新项目并打开 Lisp 透视图,如下所示:


图 6. Lisp 透视图
施用 Cusp Eclipse 插件开发 Lisp 应用程序

查看 Lisp 透视图。Lisp Navigator 窗口显示打开的项目及其相关文件。Outline 窗口显示当前打开文件的概要。位于右上侧显示 main.lisp 的窗口是 Lisp 开发窗口。位于右下侧的窗口 REPL 是 Lisp 的命令行 Lisp 解析程序,您可以在这里运行 Lisp 命令。

如果关闭并重新打开 Eclipse,则需要装入项目的 .asd 文件,如下所示:


图 7. 装入 ASD 文件
施用 Cusp Eclipse 插件开发 Lisp 应用程序

注意,需要在 my_new_lisp_project 文件夹下的 my_new_lisp_project.asd 文件上右键单击,然后选择 Load asd。这实际上就是在 REPL 窗口中编译 Lisp 项目,允许您输入可以使用新代码的 Lisp 命令。

接下来,将尝试使用 Cusp 进行一些 Lisp 开发。

来测试这个 first_echo_function。注意,'("howd" "y h" "o") 部分是用于定义列表的语法。首先,单引号必须放在括号之前,然后在括号内定义列表元素。输出如下所示:

?

您将创建一种分别处理每个列表元素的方法,这是 Lisp 的真正强大之处。定义如下:

。输出如下:


清单 7. 连接两个字符串的输出

?

完成。字符串 "howd""y ho" 变成 "howdy ho"。现在您将使用两个著名的 Lisp carcdr 函数创建更通用化的 concatenation 函数。


清单 1. 连接列表中的三个元素

?

就是这样。已正确连接了三个字符串来生成 "howdy ho"。接下来,创建递归函数。

作为参数时,下面是递归输出:

第一次执行到第 2 行时,if 语句为 false,并用 "ho"(concat_recursive '("wd" "y" " h" "o")) 调用 concat2。第二次执行到第 2 行时,if 语句又为 false,并用 "wd"(concat_recursive '("y" " h" "o")) 调用 concat2。第三次执行到第 2 行时,if 语句又为 false,并用 "y"(concat_recursive '(" h" "o")) 调用 concat2。第四次执行到第 2 行时,if 语句又为 false,并用 " h"(concat_recursive '("o")) 调用 concat2。第五次递归结束。这是因为这一次,第 2 行中的 if 语句现在为 true,并且简单地返回了 "o"。递归解开为:
第四次:连接并返回 "h""o"。第三次:连接并返回 "y""ho"。第二次:连接并返回 "wd""y ho"。第一次:连接并返回 "ho""wdy ho" 作为最终结果。

这时就完成了递归 —— "howdy ho" 最终被返回,如下所示:

?

已经将递归添加到了 Cusp 开发工具库中。接下来请尝试调试器。

。注意没有用双引号引起的数字 55 不是字符串并将导致显示调试器,如下所示:


图 8. 触发调试器
施用 Cusp Eclipse 插件开发 Lisp 应用程序

注意,触发调试器的主要错误是无法对列表 (55 "ho") 调用 concat2。另请注意,在触发该错误之前已经连接了 "h""o"

在调试器窗口中,您还可以看到 ==Backtrace==,如图 8 所示。调试器下部的每行(本例中为 0 至 19 行)给出了从单击 Send 到发生错误的详细跟踪。在这里,您还可以查看并跟踪在触发了错误的数字 55 之前的递归。

现在做什么?遇到上面的情况,您有三种选择退出调试器并修改和验证函数输入:可以中止命令并返回到正常的 REPL 窗口;可以关闭连接(通过测试发现,如果选择此选项,则需要重新引导 Eclipse 来重新启动 Lisp 处理器);可以简单地中止调试器并返回到正常的 REPL 窗口。退出调试器的最佳选项始终是中止命令并返回到正常的 REPL 窗口。

就是这样。您已经在 Lisp 中实现了递归函数。

结束语

您已经成功地使用 Cusp Eclipse 插件完成了 Lisp 开发。现在应当知道 Lisp 为什么如此强大。通过简单的递归语句,可以轻松地推动处理符号和数据列表。Cusp 为 Lisp 的功能补充了内置 Cusp 调试器、拥有项目管理功能的可靠 GUI、交互式 Lisp 编辑器以及可以输入命令和测试代码的 Lisp 处理器命令行接口。要获得更多信息,请一定要查看 参考资料。

读书人网 >Eclipse开发

热点推荐