zoukankan      html  css  js  c++  java
  • 用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

  • 相关阅读:
    Mysql千万级访问量架构
    [JAVA]《Java 核心技术》(一)
    [Linux 命令]获取当前目录下某种格式文件个数
    [项目bug收集整理3]get页面,post页面的url 参数预防问题
    [项目bug收集整理2] Map的key,如果是非内置对象,需要自己实现hashCode和equals方法
    [项目bug收集整理1]Integer 对象的相等比较
    锂电池保护原理
    (转载)mos管电压规格是什么,什么是VMOS管栅极
    (转载) MOS管区分NP沟道
    Idea中使用Lombok 编译报找不到符号
  • 原文地址:https://www.cnblogs.com/yiweshen/p/11220207.html
Copyright © 2011-2022 走看看