SML# - Tutorial/005 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

[ [[トップ |Tutorial]]| [[目次|Tutorial/000]] | [[前ページ|Tutorial/004]] | [[ 次ページ |Tutorial/006]] ]
----
!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文で指定されたファイルをオープンし、その中の
式を''';'''毎に区切り実行し、結果を表示する。ファイルの最後まで達する
と、ファイルを閉じトップレベルの入力に戻る。
----
[ [[トップ |Tutorial]]| [[目次|Tutorial/000]] | [[前ページ|Tutorial/004]] | [[ 次ページ |Tutorial/006]] ]