用Deepin (Linux)练习SICP的一些准备工作

练习环境搭建

sudo apt-get install mit-scheme

进行安装过程,注意看最后两行提示

update-alternatives: 使用 /usr/bin/mit-scheme-x86-64 来在自动模式中提供 /usr/bin/mit-scheme (mit-scheme)
update-alternatives: 使用 /usr/bin/mit-scheme-x86-64 来在自动模式中提供 /usr/bin/scheme (scheme)

这里区分mit - scheme 和 scheme。

cd /usr/bin

执行

mit-scheme-x86-64

测试

1 ]=> (+ 1 2)

;Value: 3

可以使用。

视频图书资料收集

视频,B站UP主:不稳固的支点。https://www.bilibili.com/video/av8515129

书籍,计算机程序的构造和解释。https://book.douban.com/subject/1148282/

不过碍于自己基础薄弱,故先以,基础为主

1、The Little Schemer。入门第一步。https://book.douban.com/subject/27080946/

2、《Yet Another Scheme Tutorial》是一本Scheme入门教程,

由大神Death King翻译了放在网上。http://deathking.github.io/yast-cn/

3、Githud 地址。https://github.com/DeathKing/Learning-SICP/

MIT - Scheme 基本使用

在交互式执行方式下,系统(启动后)将在一个窗口显示版本信息,最后是提示符:

1 ]=>

键入的程序代码将显示在提示符之后。

此时系统执行 read-evaluation-print 循环(读入-求值-打印循环,REPL),可以键入符合 Scheme 语法要求的表达式(程序),要求系统对其求值。表达式中可以任意换行。一旦系统读到一个完整的表达式,就会对它求值(计算),并打印出求得的值。

Scheme 不区分标识符中的大写和小写,define 和 DEFINE,Define 同样对待。

  启动后的提示符 1 ]=> 中的数字 1 表示当前系统运行在第一层“读入-求值-打印循环”。

  如果求值中出错,系统将进入更高层次的“读入-求值-打印循环”,也是系统的出错处理循环。

  在出错循环中仍然可以像在第一层循环一样使用 Scheme 系统,还可以做一些其他事情(参看 Scheme 文档)

退出一层或多层“读入-求值-打印循环”:

  可以用 Ctrl-u 组合键退出一层求值循环,用 Ctrl-g 退到第一层循环。

中断执行:

  • 组合键 Ctrl-g:杀掉正在进行的求值并回到第一层 REPL
  • 组合键 Ctrl-x:杀掉正在进行的求值并回到当前 REPL
  • 组合键 Ctrl-u:杀掉正在进行的求值并回到上一层 REPL
  • 组合键 Ctrl-b:暂停当前求值进入断点 REPL。可以用 (continue) 唤醒中断的执行

 

Scheme 文件操作

编辑和装入程序文件:

如果程序比较长,可以用系统外的编辑器编写好程序源文件,而后用 load 函数装入系统。

下面是一个用绝对路径的实例:

1 ]=> (load "e:\temp\test1.scm")

求值这个表达式,可以看到文件装入的信息。load 函数还可以装入编译好的程序文件,详情见 Scheme 文档 “MIT Scheme User's Manual” 的 “3.2 Loading Files”。

用函数 cd 可以转换当前工作目录。下面是一个实例:

1 ]=> (cd "e:\temp")

此后就可以直接用文件名装入这个目录下的文件了。

保存和恢复系统映像:

可以将 Scheme 系统的当前运行现场保存起来,以便将来回复这个现场。这样保存的现场称为一个“world image”或者一个“band”。实际上,Scheme 启动时也就是装入了一个默认的 band,装入编译器的启动方式就是装入另一个 band。

函数 save-disk 将当前现场存入文件。下例将现场存入当前目录下的文件 image1:

1 ]=> (disk-save "image1")

函数 disk-restore 恢复原保存在一个文件里的现场:

1 ]=> (disk-restore "image1")

参考资料:知乎@Clement Lihttps://zhuanlan.zhihu.com/p/34313034

http://www.math.pku.edu.cn/teachers/qiuzy/progtech/scheme/MIT_Scheme_doc/index.html

原文地址:https://www.cnblogs.com/yiweshen/p/11220207.html