首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

施用 Cusp Eclipse 插件开发 Lisp 应用程序

2012-10-17 
使用 Cusp Eclipse 插件开发 Lisp 应用程序平均分 (共 3 个评分 )单击已添加的新远程站点旁边的复选框并单

使用 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 处理器命令行接口。要获得更多信息,请一定要查看 参考资料。

热点排行