Practical Common Lisp学习笔记——之准备环境

翻译 2011年01月08日 02:48:00

2.泡沫,洗涤,重复:REPL的一个巡回

使用LispBox作为开发环境,使用Emacs提供文本编辑和SLIM

选择一个Lisp实现

Lisp不像PerlPythonVBC#Java,有固定的实现,Common Lisp只由一个标准定义。而且不像PerlPython由一个机构控制单个实现,也不像VBC#Java由一个公司控制典型实现。Common LispANSI管理标准,任何人想通过阅读标准制造编译器都是可以的而且是免费的。事实上Common Lisp的标准让你在各个编译器实现中,不论是开源还是商业, 都可以使用语言的特性。你能统计出符合标准的程序在不同实现上的性能差异。

为了库的通用性,Common Lisp提供一种灵活的方式写代码“有条件的”使用实现的特殊特性。

Allegro Common Lisp商业的实现最具典型,支持LinuxWindowsOSX。开源实现里面SBCL具有很高水平,编译为本机代码,支持多种Unixes,包括LinuxOSXSBCL是继承自CMUCL。另外OpenMCL也是很不错的选择,编译为机器码,在OSX上有很好的集合环境CarbonCocoa

准备并运行Lisp in a Box

Emacs中描述快捷键时,Ctrl键常使用C表示,比如:C-h,表示按下Crtl的同时按h键。也有M表示Meta(一般都是Alt)Emacs中自带的教程是C-h t,有空格则是在松开Ctrl键按下t键。手册是C-h i,键入C-h ?会有完整的列表。两个最有用的快捷键是C-h k让我们输入任何组合键后告诉我们哪些命令被调用,并且使用C-h w让我们输入一个命令后告诉我们被什么组合键调用。

Emacs中至关重要的是buffer(缓冲),在使用Emacs时所有被编辑的文件都用不同的缓冲表示。在任何时间只有一个当前的,当前的缓冲接受所有输入。在普通操作时会有切换缓冲,表示使用不同的缓冲当作当前缓冲,命令switch-to-buffer,绑定组合键C-x b,有缓冲名在Emacs的底部提示。当输入缓冲名后按Tab键会出现提示列表,列出包含有输入字符的缓冲。提示会建议一个默认缓冲,同意就按Return。也可以在菜单中使用Buffers来选择缓冲。

在某个特定的环境中,组合键能切换到特定缓冲,比如:当编辑Lisp源文件时,组合键C-c C-z切换缓冲到与Lisp交互。

释放你的想法:交互程序

Lisp in a Box首先看到的是:

 

       CL-USER>

 

这是Lisp的提示符,类似Unix或者DOSshell提示。但与shell不同的是shell读取并解释一行命令,而Lisp是读取Lisp表达式,按照Lisp的规则求值并且输出结果。这样无止境的读取,求值,输出就是为什么被称为read-eavl-print loop,简称REPL。这也被当做top-level listener或者Lisp listener

REPL中能定义程序元素,变量,函数,类和方法;对任何Lisp表达式求值;加载文件包含Lisp源文件或者编译代码;编译整个文件或者个别函数;进入调试器;步进代码;和检查个别Lisp对象的状态。

完全可以不借助任何其他编程环境仅仅依靠REPL和任何一个能正确排版Lisp代码的文本编辑,进行一个漂亮合理的编程。但是对真正的Lisp编程体验,需要一环境,比如SLIME,能通过REPL和整个编辑的源文件与Lisp交互。事实上,你不希望从源文件剪切和粘贴函数定义到REPL,或者加载整个文件只是因为你改变了一个函数;你的Lisp环境允许我们对个别表达式和文本编辑器中的整个文件求值或者编译。

举报

相关文章推荐

Practical Common Lisp学习笔记——之HelloWorld

在REPL中实验Lisp中最简单的表达式就是一个数字。输入10会返回10:       CL-USER> 10       10Lisp的读取器在REPL中的R,读取了”10...

Practical Common Lisp学习笔记——之第4章语法和语义

4.语法和语义   S-expressions s-expression的基本元素是表list和原子atom。表是括号和里面包含用任意空白隔开的元素。原子则是除此之外的。一个表的元素自身也是一个s-e...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Practical Common Lisp学习笔记(五)常用函数宏备忘3

继续学习,继续积累

Practical Common Lisp学习笔记(一)

写给准备把第一次给lisp的人

Practical Common Lisp学习笔记(四)常用函数宏备忘2

继续学习,继续补充

Practical Common Lisp学习笔记 (六)AllegroServe问题小结

学习AllegroServe问题小结

Practical Common Lisp学习笔记(三)常用函数宏备忘

目前接触到的希望对你有用

Common Lisp 符号计算引论第八章——递归 学习笔记

1. three rules for solving problem recursively --- take every recursive problem as if it were a jour...

Common Lisp 学习笔记(1)

特殊操作符、函数、宏0.0 formatCL-USER>(format t "hello world") ;t=>*standard-output* hello world NIL CL-USER>(...

Emacs学习笔记(为了学习Common Lisp)

Emacs学习笔记
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)