Windows版有り srcにVC6,VS2002のプロジェクト有り
[2003/09/06 04:58:33 PDT] Ver205、VSプロジェクト、Relese版ビル後のDebug版のビルドはOKだが、 何か設定の問題があるのか不明だが、Debug版だけのビルドだとエラー発生、ビルド成功せず。
Linux、Mac、Sparc版もあり、ソースコードも公開している。取っ掛かりとして、WindowsでSchemeやる人に、如何と
http://www.plt-scheme.org/ http://www.ccs.neu.edu/scheme/ DrScheme http://www.drscheme.org/ DrEd http://www.plt-scheme.org/software/mred/ MzScheme http://www.plt-scheme.org/software/mzscheme/ Other PLT Software http://www.plt-scheme.org/software/
誰かに訳してもらいたい How to Design Programs http://www.htdp.org/2002-09-22/Book/ Schemeを普及させよう(そして Gauche を(すみません後回しで))
私(今津)の語学(英語&Scheme)では不正確な所があるかも知れません。修正、加筆ご自由に願います。
基本的にバイトコードにコンパイルされてから実行されるが、x86、x64 (AMD64/EM64T)、32-bit PowerPCではバイトコードがJITコンパイルされて、ネイティブコードとして実行される。
MzSchemeでは、文字型の内部表現としてUCS-4を使い、入出力の外部表現としてUTF-8を仮定している。文字列型とUTF-8、UTF-16との変換処理は標準で装備していて、CP932などのUTF-8以外のエンコーディングにも、iconv経由で対応。
基本的に、UTF-8以外のエンコーディングはByte Stringという型を経由して扱う。入出力の際に、Byte Stringと文字列型との間で変換を行い、内部では一貫してUCS-4として処理する。UTF-8の場合は、この変換が自動化される。また、エンコーディング変換ポートを使って、自動的に変換処理を行うこともできる。
;; Shift_JISでエンコーディングされたファイルを読み込む例 (4.1.4) (require scheme/port) (read-line (reencode-input-port (open-input-file "test.sjis") ; 元になる入力ポート "sjis" ; 入力ポートのデータのエンコーディング #f ; 変換にエラーが発生したときに代用されるByte String #t)) ; 変換ポートが閉じるとき、元のポートも閉じる
この例では、内部表現のUCS-4に変換された文字列が返る。前述の通り、iconvを利用できる環境であれば、"cp932"、"iso-2022-jp"、"eucjp"、"utf8"なども指定可能。reencode-output-portで出力ポートを作ることもできる。
標準ではUTF-8で入出力されるので、Windowsのコマンドプロンプトを使っている場合など、他のエンコーディングで入出力したい場合、
(require scheme/port) (current-output-port (reencode-output-port (current-output-port) "cp932" #f #t)) (current-input-port (reencode-input-port (current-input-port) "cp932" #f #t))
のように、標準入出力にエンコーディング変換ポートを挟む。
Windows、Mac OS X、Linux、Solarisにはバイナリがあるので、それを使えば簡単にインストールできる。それ以外の環境では、ソースコードからビルド。
Emacsから使う場合は、こんな感じで適当に設定。
(autoload 'run-scheme "cmuscheme" "Run an inferior Scheme process." t) (setq scheme-program-name "C:/PLT/MzScheme.exe") (setq process-coding-system-alist (cons '("[Mm]z[Ss]cheme" utf-8 . utf-8) process-coding-system-alist))
PLT SchemeのダウンロードページからWindows用のインストーラをダウンロードして実行するだけ。
C:\Documents and Settings\imazu>mzscheme Welcome to MzScheme version 205, Copyright (c) 1995-2003 PLT >
> (exit) C:\Documents and Settings\imazu>
Ctr-C でも終了します。
初期化時、mzschemerc.ssがHOMEPATHの所にあればそれが読まれる
C:\Documents and Settings\Imazu>mzscheme Welcome to MzScheme version 205, Copyright (c) 1995-2003 PLT >を立ち上げといて、ファイル等からコピーしたのを右マウスクリックでペーストして入力しています。
>(load "ファイル名(拡張子込み)") C:\Documents and Settings\Imazu\MzScheme>type こんにちは.ss (begin (display "こんにちは、世界!") (newline)) C:\Documents and Settings\Imazu\MzScheme>mzscheme Welcome to MzScheme version 205, Copyright (c) 1995-2003 PLT > (load "こんにちは.ss") こんにちは、世界! >
http://download.plt-scheme.org/doc/mzscheme/mzscheme-Z-H-7.html#node_sec_7.7
> (current-directory) "C:\\Documents and Settings\\Imazu"
http://download.plt-scheme.org/doc/mzscheme/mzscheme-Z-H-7.html#node_idx_1020
を基準に
> (current-library-collection-paths) ("C:\\Documents and Settings\\Imazu\\Application Data\\PLT Scheme\\205\\collects" "C:\\Program Files\\plt\\collects")
http://download.plt-scheme.org/doc/mzscheme/mzscheme-Z-H-7.html#node_idx_1182
等でライブラリを検索しているよう