Homeに戻る  一覧に戻る 

Standard ML/NJ


Standard ML/NJをBuildする[2003.03.02]

Standard MLは関数型プログラミング言語である。パターン照合、高階関数、多相型、型推論、モジュールシステム(structure/signature)などの興味深い機能を持っている。
Standard MLの1つの実装であるStandard ML of New Jersey Version 110をNetBSD-1.6/i386上でBuildする。手順は以下の通りである。
  1. 110-INSTALLを良く読む。
  2. install先のデリレクトリを作成する。ここでは、~/smlとする。
    $ cd ~
    $ mkdir sml
        
  3. tar.Zファイルをコピーする。
    $ cp ./install/SML/*.tar.Z ./sml/
    $ cd sml
        
  4. config.tar.Zを展開する。他のtar.Zファイルは自動的に展開される。
    $ tar zxf config.tar.Z
        
  5. 必要に応じて、config/targetを編集する。デフォルトでは、sml-cm,smlnj-lib,ml-yacc,ml-lex,ml-burgがインストールされる。
  6. インストールスクリプトconfig/install.shを実行する。buildが開始される。
    $ ./config/install.sh
        
  7. bin/smlを起動して、階乗関数factを定義し、7!,8!,9!,10!,11!,12!を計算してみる。整数型は、13!の計算ではoverflowする。
    bash-2.03$ ./bin/sml
    Standard ML of New Jersey, Version 110.0.7, September 28, 2000 [CM; autoload enabled]
    - fun fact x = if x=0 then 1 else x*fact(x-1);   
    val fact = fn : int -> int
    - map fact [7,8,9,10,11,12];
    val it = [5040,40320,362880,3628800,39916800,479001600] : int list
    - fact(13);
    
    uncaught exception overflow
      raised at: 
        
  8. smlを終了するには、EOF(control-D)を入力する。
Standard ML/NJも、多倍長整数型を(標準の型として)持っていないようである。

参考文献



Last Update: 2005.06.12
H.Nakao

Homeに戻る[Homeに戻る]  一覧に戻る[一覧2003に戻る]