(5)[ML] 初めてのMLプログラム

MeadowからのSML#コンパイラの起動

C:\SMLSharpAndC\smlのtest.smlをダブルクリックして、Meadowを起動し、さらに、shellコマンドでshellバッファを作成しよう。すると、shellバッファは

 c:\SMLSharpAndC\sml>

プロンプトが出て入力待ちとなっているはずである。このプロンプトに続きsmlsharpと入力(最後は常にEnterキー)すると、以下のようにSML#コンパイラが起動される。

c:\SMLSharpAndC\sml>smlsharp
smlsharp
SML# 0.20 (2007-03-30 10:47:08 JST)
#

最後の# はSML#コンパイラのプロンプトであり、SML#コンパイラはMLプログラムの入力を待っている。ここで、プログラムに続きコンパイル単位の終了を示す;(セミコロン)を入力すると、SML#はそのプログラムを直ちにコンパイルし実行し、結果を表示する。

では,MLプログラムを入力してみよう.test.smlに書いた"Hi, there!";は単なる定数であるが,定数も式なので,これ自身完結したプログラムである.実際,以下のように受け付けられ,結果が表示される.

 # "Hi, there!";
 val it = "Hi, there!" : string
 #

この表示結果は、以下のような情報を表している。

  • val it = --- 式の結果の値がitという名前で記録されたことをあらわす。
  • "Hi, there!" --- プログラムを実行した結果の値。
  • string --- このプログラムの型

MLプログラミングの基本原則(その1)

MLプログラミングの基本は式の組み合わせである。式には、"Hi, there!"のような定数や小学校以来慣れしたしんできた1 + 2 のような算術式以外に種々の形の式が提供されている.これから,式を組み合わせて関数を定義して行きながら,種々の式とその意味を学んでいく.ただ,どのように複雑式でも,式の基本は算術式と同様、すなわち,

式を計算すると「値」が得られる,

ということである.このように式を計算し値を得ることを

式を評価する

という.

簡単な式の評価例を以下に示す。

# 21;
val it = 21 : int
# 3.14;
val it = 3.14 : real
# 1E2;
val it = 100 : real
# true;
val it = true : bool
# #"A";
val it = #"A" : char
# 22 - (23 mod 3);
val it = 20 : int
# 3.14 * 6.0 * 6.0 * (60.0/360.0);
val it = 18.84 : real
# 2 * 4 div (5 - 3)
> * 3 + (10 - 7) + 6;
val it = 21 : int
#

最後の式のように式は複数行にまたがってもよい。

ファイルの利用

以上のようにSML#コンパイラと直接対話しながらプログラムすることが可能であるが、通常は、プロラムをファイルに格納し、のファイルを実行する。このために、以下のようにuse文を使用する。

 # use "test.sml";
 val it = "Hi, there!"
 #

SML#コンパイラは、use文で指定されたファイルをオープンし、その中の式を;毎に区切り実行し、結果を表示する。ファイルの最後まで達すると、ファイルを閉じトップレベルの入力に戻る。


[ トップ | 目次 | 前ページ | 次ページ ]