博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MIT Scheme 的基本使用
阅读量:5290 次
发布时间:2019-06-14

本文共 2026 字,大约阅读时间需要 6 分钟。

MIT Scheme 的基本使用

安装和启动

启动

在 Windows 下正确安装 MIT Scheme 系统后,程序菜单里将有一个 MIT Scheme 目录,其中包含:
  1. MIT GNU Scheme:Edwin 环境下启动 Scheme。Edwin 是一个类似 emacs 的编辑器
如果喜欢用命令行交互方式,可以用下述命令建一个快捷命令,放在你的桌面或者命令菜单里。注意将目录修改为你的系统安装目录:
"C:\Program Files\MIT-GNU Scheme\bin\scheme.exe" --library "C:\Program Files\MIT-GNU Scheme\lib"

Edwin系统的退出

C-x z (表示按 Ctrl-x 后按 z 键):从 Edwin 中退到 Scheme 的命令交互状态。此时 Edwin 挂起,可用 (edit) 唤醒挂起的 Edwin,回到挂起前的状态。

C-x c :停止 Edwin 并回到 Scheme 的命令交互状态。

C-x C-z:停止 Edwin 并挂起 Scheme 系统。再次启动 Scheme 将唤醒挂起的 Scheme 系统,回到挂起前的系统状态。

C-x C-c:停止 Edwin 和 Scheme 系统。

从交互循环进入 Edwin

在交互方式下执行 (edit) 或 (edwin),将启动或返回 Edwin

交互式执行中退出

在提示符下键入下面表达式并回车:

n ]=> (exit)

系统将要求确认。这样退出后所有在 Scheme 里已经做的事情都将丢掉了。

基本使用:

命令行交互方式下回车,如果已输入了一个完整表达式,系统就会对其求值并输出结果

在 Edwin 里 C-x C-e 求值光标左边的一个完整表达式,M-z 求值光标当时位于其中的整个定义式(一个定义式也就是一个表达式,其左括号从最左边开始)

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")

阅读 MIT Scheme 文档:

“MIT Scheme Reference” 介绍 MIT Scheme 的详细功能,“MIT Scheme User's Manual” 介绍 MIT Scheme 的使用。“SOS Reference Manual” 介绍的 SOS 是 Scheme 的一个对象系统,“IMAIL User's Manual” 介绍的 IMAIL 是用 Scheme 做的一个邮件阅读器。下面简单介绍与前两个文档有关的若干问题。

MIT Scheme 手册的主要内容是介绍这个 Scheme 系统提供的功能,包括预定义的变量(variable)、特殊形式(special form)和过程(procedure,函数)。例如

  • 过程的实例:
    procedure: eqv? obj1 obj2 
    过程名是 eqv?,取两个参数。使用的例子: (eqv? 3 2)

    procedure: list object ... 

    过程名是 list,取 0 个或任意多个参数。用例: (list 1 2 3 4)

  • 特殊形式的实例:
    special form: lambda formals expression expression ... 
    特殊形式,名字是 lambda,后面应有一个参数表和一个或多个表达式。
    用例: (lambda (x y) (+ x y))

转载于:https://www.cnblogs.com/xiaomaohai/archive/2013/04/09/6157750.html

你可能感兴趣的文章
20180524模拟赛T3——Word
查看>>
计算机网络基础
查看>>
关于书签(BookMark)操作;
查看>>
查看Linux服务器的硬盘使用情况
查看>>
日报 18/06/20
查看>>
loj #6136. 「2017 山东三轮集训 Day4」Left
查看>>
java集合类
查看>>
学习资料
查看>>
java 18 - 8 HashMap和ArrayList的嵌套2
查看>>
Day21 Json & pickle 数据序列化
查看>>
内存结构。
查看>>
洛谷 [FJOI2014]最短路径树问题 解题报告
查看>>
欲望都市游戏设计 背景图层和UI图层的设计
查看>>
2-2 groovy基础知识-理论介绍
查看>>
Null Object Design Pattern (Python recipe)
查看>>
bootstrap学习笔记(6)
查看>>
leetcode : Valid Sudoku
查看>>
浅谈-Lambda
查看>>
storm 批处理(窗口)
查看>>
洛谷 P1052 过河
查看>>