MIT Scheme 的基本使用

MIT Scheme 的基本使用 安裝和啓動 啓動 在 Windows 下正確安裝 MIT Scheme 系統後,程序菜單裏將有一個 MIT Scheme 目錄,其中包含: Documentation:以瀏覽器方式打開 HTML 形式的 Scheme 文檔 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 求值光標當時位於其中的整個定義式(一個定義式也就是一個表達式,其左括號從最左邊開始) 命令行交互方式下的基本使用 Edwin方式下的基本使用 MIT-GNU-Scheme 文檔 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)) === 命令行方式下的使用 基本使用 在交互式執行方式下,系統(啓動後)將在一個窗口顯示版本信息,最後是提示符: 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) 喚醒中斷的執行 === *其餘詳見評論 轉抄自:http://www.cnblogs.com/Henrya2/archive/2009/02/21/1395615.html,特此感謝
相關文章
相關標籤/搜索