在win7下可安装MIT-GUN scheme, 点开后有两个界面:一个交互式命令行界面;一个Edwin界面。
    在命令行界面按Ctrl-G可以开始输入。在Edwin界面,输入完整命令后按Ctrl-x Ctrl-e可以求值。

启动mit-scheme时报“Requested allocation is too large, try again with a smaller arguement to '--heap'”,需要尝试好几次才能打开。查询用户手册得到以下信息:

(一)Scheme使用四种类型的内存:
    * 一个栈用于递归过程调用。
    * 一个堆用于动态分配对象。堆中分配给对象的存储空间在失去引用后,会被垃圾回收器回收。
    * 一个常量空间用于分配对象,类似于堆。于堆不同的是,在常量空间中,被对象使用的存储空间不会被垃圾回收。常量空间用于本质上永久存在的对象,例如运行时环境的过程。
    * 用于microcode的额外存储空间(部分用C实现的系统)。

(二)Scheme 表达式(print-gc-statistics)会显示可用的堆空间和常量空间。

(三)影响microcode的环境变量必须在启动Scheme之前确定,其他的环境变量可以在Scheme内用set-environment-variable!过程重写。

(四)MITSCHEME_HEAP_SIZE是用于microcode的环境变量(即windows下的mit-scheme可执行程序)。这个量代表堆的大小,单位是1024字的块,用--heap参数可重设。其默认值依赖于架构:在32位的机器上默认为“4096”,在64位的机器上默认是“16384”。

综上,在mit-scheme的快捷方式点右键>属性,“目标”一栏是
    D:\Tools\MIT-GNU Scheme\bin\mit-scheme.exe" --library "D:\Tools\MIT-GNU Scheme\lib" --edit
    设置一个较小的heap值即可,例如:
    D:\Tools\MIT-GNU Scheme\bin\mit-scheme.exe" --heap "2000" --library "D:\Tools\MIT-GNU Scheme\lib" --edit
    其中--edit代表打开Edwin。

Knowledge about the concept REPL in user manual.
    REPL: Read-Eval-Print Loop. Display a prompt, wait for input, evaluate the expression, print the result and give you another prompt.
    The REPL prompt has a level number. This number is incremented under certain circumstances, the most common being an error.
    The appearance of the 'error>' prompt does nt mean that Scheme is in some weird inconsistent state that you should avoid. It is merely a reminder that your program was in error: an illegal operation was attempted, but it was detected and avoided. Often the best way to find out what is in error is to do some poking around in the error REPL.

Interrupting:
    Ctrl-c: Prompt you for another character and performs some action based on that character.
    Ctrl-g: Abort whatever Scheme evaluation is currently running and return to the top level REPL.
    Ctrl-x: Abort whatever Scheme evaluation is currently running and return to the "current" REPL.
    Ctrl-u: Abort whatever Scheme evaluation is currently running and go up one level.
    Ctrl-b: Suspend whatever Scheme evaluation is running and start a breakpoint REPL. The evaluation can be resumed by evaluating (continue) in that REPL at any time.

restart [k]: This procedure selects and invokes a restart method. The list of restart methods is different for each REPL and for each error.

The Current REPL Environment
    Every REPL has a current environment, which is the place where expressions are evaluated and definitions are stored.
    When Scheme is started, the environment is user-initial-environment.
    The runtime system's bindings are stored in system-global-environment.
    Here is the procedure that changes the REPL's environment:
    (ge environment): Goto Environment, change the current REPL environment to be environment.
    (pe): Print Environment, find out which environment you are in.

MIT scheme入门使用的更多相关文章

  1. MIT Scheme 使用 Edwin

    MIT Scheme 的基本使用:http://www.math.pku.edu.cn/teachers/qiuzy/progtech/scheme/mit_scheme.htm 安装过程 安装bre ...

  2. MIT Scheme 的基本使用

    MIT Scheme 的基本使用 安装和启动 启动 在 Windows 下正确安装 MIT Scheme 系统后,程序菜单里将有一个 MIT Scheme 目录,其中包含: Documentation ...

  3. Scheme入门

    目前选择的是DrRacket作为IDE,可以去网上搜索下载. 打开软件后,输入如下代码进行 helloworld #lang scheme ;The first program (begin (dis ...

  4. MIT Scheme Development on Ubuntu

    sudo apt-get mit-scheme; run "scheme" then you enter the command line scheme repl; sudo ap ...

  5. Scheme Implementations对比

    MIT Scheme http://www.gnu.org/software/mit-scheme/ GNU Guile http://www.gnu.org/software/guile/ Rack ...

  6. Java门派的风险

    Java门派的风险 正在看周思博(www.joelonsoftware.com)的新文章.这次是疯狂攻击Java.主要论点是:Java不够难,作为工业语言不错,但作为学校的教学语言,就忒差了.学校应该 ...

  7. sicp第1章

    牛顿迭代法求平方: (define (sqrt-iter guess x) (if (good-enough? guess x) guess (sqrt-iter (improve guess x) ...

  8. SICP 解题集 — SICP 解题集

    SICP 解题集 — SICP 解题集 SICP 解题集¶ 这个文档的目标是成为中文化的.完整的<计算机程序的构造和解释>一书的解题集. 这个解题集的特色是: 对于每道习题,除了习题答案之 ...

  9. 免费的编程中文书籍索引 from github

    免费的编程中文书籍索引 免费的编程中文书籍索引,欢迎投稿. 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版. stackoverflow 上的程序员应该阅读的非编程类书籍有哪些 ...

随机推荐

  1. Oracle decode函数 除数为零

    decode (expression, search_1, result_1)如果 expression结果=search_1结果,则返回result_1,类似 if elsedecode (expr ...

  2. CSS凹型导航按钮

    一般需求,圆角看起来更加舒服,但是下面直角略显生硬 于是设计师有了下面的需求,下面加上小凹型: 凹型?凹型?凹型?有点变态,这怎么实现........... 图片肯定是最先考虑到的,CSS实现有貌似有 ...

  3. Hadoop1.2.1伪分布模式安装指南

    一.前置条件 1.操作系统准备 (1)Linux可以用作开发平台及产品平台. (2)win32只可用作开发平台,且需要cygwin的支持. 2.安装jdk 1.6或以上 3.安装ssh,并配置免密码登 ...

  4. eclipse修改字体

    修改xml字体: window→Preferences→General→Colors and Fonts→Basic→Text Font

  5. python yield 理解

    在别人的代码中看到yield这个关键字,看了几篇资料,说一下个人理解. 包含yield 关键字的函数成为一个迭代器,yield跟return的位置一样,只不过每次返回结果后,并没有退出,而是等待下一次 ...

  6. NAS4Free 安装配置(六)配置transmission实现BT(PT)下载

    配置transmission transmission是一个跨平台的BT客户端 首先我们建立一个存放transmission配置文件的目录 可以通过SSH,也可以通过网页来完成 注意:最好是通过SSH ...

  7. layout_weight

    最近写Demo,突然发现了Layout_weight这个属性,发现网上有很多关于这个属性的有意思的讨论,可是找了好多资料都没有找到一个能够说的清楚的,于是自己结合网上资料研究了一下,终于迎刃而解,写出 ...

  8. 2015北大夏令营day1 B:An Idea of Mr. A

    题意:给定一个范围l,r计算i,j(i<j)属于这个范围内的gcd(2^(2^i)+1,2^(2^j)+1)的总和. 思路:费马数的应用,让我惊呆的是当年居然有123个人会做,我tm毛都不会.. ...

  9. C语音--static变量

    static变量大概是两种情况 在函数里的static变量意味着这个变量的生存期是全局的,你可以想象它实际上就是在函数外声明的, 当然因为可见范围的原因其他函数不能访问它 在函数外的static变量意 ...

  10. .net 中的DllImport

    只有做成COM的C++ dll才能直接引用.没有做成COM的就只能用P/Invoke(DllImport)或者C++/CLI那种.不过P/Invoke容易类型对不上,所以要是函数多,最好用C++/CL ...