[Scheme入门]1 Edwin的基本使用

Edwin是MIT Scheme系统的一个窗口式的编辑使用前端。启动Edwin实际是先启动Scheme系统,再启动也给Edwin前端。Edwin是一个使用Scheme写的交互式编辑器,其特点是支持Scheme表达式的编辑和求职。

Edwin模式:

编辑Scheme文件的模式,如果装入一个.scm文件,相应的Edwin的这个编辑区处于Edwin模式。这种模式下可以编写Scheme程序,也可以对表达式求值。正常求出的值显示在最下面交互行,但不会显示出错信息,也不能进入调试系统。

REPL模式:

REPL也就是Read-Evaluation-Print-Loop,读入-求值-打印-循环。在该模式下,你可以看到状态条显示”REPL:lsten“。这时系统处于正常的Scheme交互模式,所有输出都显示在编辑器的窗口中,只不过是在Edwin中执行。这种情况下可以输出所有信息,包括进入debug模式。

对于多行输入的表达四,换行后按C-i,系统能够将光标自动对齐到合适位置。

C-v:向下翻一屏   M-v:向上翻一屏
C-a:移动到行首   C-e:移动到行尾

C-b:往左移一位          C-f:往右移一位

C-p:往上移一位          C-n:往下移一位

C-x C-e则会对左边(光标位于表达式后但在同一行)或上一个(光标位于表达式后但位于下一个表达式前且不在同一行)表达式求值。

对区域内所有代码求值可以用C-M-z,若在Windows下使用Edwin,必须得前清理掉最上方的版权信息等。

装入文件可以采用

(cd "d:\\lisp\\scheme")

(load "scheme1.scm")

然后按下C-x C-e之后会显示

;Loading “scheme1.scm”…done

当有大量的函数等需要写入的时候,建议用另外的记事本等来保存。

一旦进入了Edwin,可以通过如下的方式退出:

C-xz              停止Edwin并返回到Scheme(suspend-edwin)。进入Edwin的editor过程调用正常返回。接下来若调用edit则会从上次停止的地方重启Edwin。

C-xc              保存任何修改过的缓冲区,关闭Edwin并返回到Scheme(save-buffers-kill-edwin)。这个与suspend-edwin命令类似,不过下次调用edit会重新初始化编辑器。

C-x C-z          停止Edwin并挂起Scheme,把控制权交给操作系统的命令解释器(suspend-scheme)。当Scheme被重新启用(使用命令解释器的作业控制(job-control)命令),Edwin会自动从它停止的地方重启。这个命令与Emacs的C-x
C-z命令是一样的。

C-xC-c           保存任何修改的缓冲区,然后关闭Edwin和Scheme(save-buffers-kill-scheme)。把控制权交给操作系统的命令解释器,Scheme进程也被终止。此命令与Emacs的C-x
C-c命令相同。

全局变量的补全功能:键入变量的前面几个字符,然后键入C-M-i,Edwin就会尝试去补全变量的名称,根据当前界限内的变量集。若给出了一个参数前缀,C-M-i会补全这个名称,根据当前的限制的(interned)符号集合(包括了边界变量作为一个子集)。

文件的打开与关闭,编辑器的关闭。按下Ctrl-X
Ctrl-F来打开一个文件。如果你指定的文件并不存在,则会创建一个新文件。初始路径被设置为了‘C:\’,你在打开文件前应该修改这个路径。按下C-X
C-S来保存文件,而按下C-x C-w则是文件另存为。退出编辑器请按下C-x C-c。

缩进。按下C-i或者TAB可以缩进。

剪切,复制和粘贴。我们无法使用鼠标,因此复制(剪切)、粘贴起来就会显得不太方便。但你可以像下面这样做:

首先,通过方向键将光标移动至待选区域的开头,然后按下C-SPACE。

然后移动至结束位置按下C-w来剪切区域,按下M-w来复制区域。

最后,移动至你想要复制的区域,按下C-y。

求值S-表达式

按键M-z用于求值以define开头的S-表达式。

按键M-:用于在一个小型的缓冲区中求值S-表达式。这个通常用在测试用M-z求值的函数。

按键C-x
C-e用于求值整个*scheme*缓冲区中的S-表达式。

时间: 2024-11-06 10:01:09

[Scheme入门]1 Edwin的基本使用的相关文章

[Scheme入门]3 高阶函数

 1.高阶函数的介绍 高阶函数的英文名称是Higher Order Function,它们是以函数为参数的函数.主要用于映射(mapping).过滤(filtering).归档(folding)和排序(sorting)表.高阶函数让程序更具模块性,让函数更加通用. 函数sort具有2个参数,一个是需要排序的表,另一个是定序(Ordering)函数.下面展示了按照大小将一个整数表正序排序.而<函数就是本例中函数的定序函数. (sort'(420 -130 138 983 0 298 783 -

Scheme入门

目前选择的是DrRacket作为IDE,可以去网上搜索下载. 打开软件后,输入如下代码进行 helloworld #lang scheme ;The first program (begin (display "Hello, World!") (newline)) 点击运行 run,即可在下方控制台打印 “Hello, World!". 如果输入 #lang scheme (define (my_cube x) (* x x x)) 点击 run 后,在下方控制台输入 dis

[Scheme入门]3 eqv?、loop、let、letrec、do等的比较和使用

一.对象的比较 1.eq? 这个函数用来比较2个对象的地址,如果相同的话就返回#t.在Scheme中真用#t表示,假则用#f. 例如,(eq? str str)返回#t,因为str本身的地址的是一样的,但是"scheme"和"scheme"则被存储在不同的地址中,因此函数返回#f.注意,不要用eq?来比较数字,因为在R5RS和MIT-Scheme中均没有被指定返回值,建议使用eqv?或者=代替.以下是一些示例: (define str "scheme&qu

[Scheme入门]2 算数运算

1.quotient.remainder.modulo和sqrt 函数quotient用于求商数(quotient). 函数remainder和modulo用于求余数(remainder). 函数sqrt用于求参数的平方根(square root). 以下是一些示例: (quotient73) ;Value: 2 (modulo73) ;Value: 1 (sqrt 10) ;Value: 3.1622776601683795 2.sin.cos.tan.asin.acos和atan atan接

开源电子书

操作系统 开源世界旅行手册 鸟哥的Linux私房菜 The Linux Command Line (中英文版) Linux 设备驱动 (第三版) 深入分析Linux内核源码 UNIX TOOLBOX Docker中文指南 Docker -- 从入门到实践 Docker入门实战 Docker Cheat Sheet FreeRADIUS新手入门 Mac 开发配置手册 FreeBSD 使用手册 Linux 命令行(中文版) Linux 构建指南 Linux工具快速教程 Linux Documenta

免费的编程中文书籍索引

免费的编程中文书籍索引,欢迎投稿. 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版. stackoverflow 上的程序员应该阅读的非编程类书籍有哪些? 中文版 github 上的一个流行的编程书籍索引 中文版 感谢 @siberiawolf 使用 Bootstrap 开发了网页版,地址:http://siberiawolf.com/free_programming/index.html 参与交流 欢迎大家将珍藏已久的经典免费书籍共享出来,您可以: 使用 Issues 

王垠:如何掌握程序语言(转)

王垠:如何掌握程序语言 学习程序语言是每个程序员的必经之路.可是这个世界上有太多的程序语言,每一种都号称具有最新的“特性”.所以程序员的苦恼就在于总是需要学习各种稀奇古怪的语言,而且必须紧跟“潮流”,否则就怕被时代所淘汰. 学习程序语言是每个程序员的必经之路.可是这个世界上有太多的程序语言,每一种都号称具有最新的“特性”.所以程序员的苦恼就在于总是需要学习各种稀奇古怪的语言,而且必须紧跟“潮流”,否则就怕被时代所淘汰. 作为一个程序语言的研究者,我深深的知道这种心理产生的根源.程序语言里面其实有

免费的编程中文书籍索引【藏】

出处:http://siberiawolf.com/free_programming/index.html 本文所列文章全部来自@justjavac.由于本文更新方式为手动更新,更新时间较慢,所以最新最全最好的文章,请直接访问作者:免费的编程中文书籍索引 语言无关类 操作系统 开源世界旅行手册 鸟哥的Linux私房菜 Linux 系统高级编程 The Linux Command Line (中英文版) Linux 设备驱动 (第三版) 深入分析Linux内核源码 UNIX TOOLBOX Doc

编程中文书籍索引

编程中文书籍索引 免费的编程中文书籍索引 免费的编程中文书籍索引,欢迎投稿. 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版. stackoverflow 上的程序员应该阅读的非编程类书籍有哪些? 中文版 github 上的一个流行的编程书籍索引 中文版 感谢 @siberiawolf 使用 Bootstrap 开发了网页版,地址:http://siberiawolf.com/free_programming/index.html 参与交流 欢迎大家将珍藏已久的经典免费书