文
文はMokkosuの最上位レベルの命令です。 文はソースファイルの上から順番に評価されていきます。 文は必ずセミコロンで終わります。
do文
do 式;
式;
do文は値が()
になる式を評価して結果を捨てます。
キーワードのdo
は省略することができます。
let文
基本形
let パターン = 式;
let文は式を評価してその結果をパターンにマッチさせます。 パターンマッチに失敗した場合、実行時エラーになります。
拡張形式
let パターン パターン1 パターン2 ... = 式;
上の形式のlet文は以下のlet文と同じ意味です。
let パターン = \パターン1 パターン2 ... -> 式;
fun文
基本形
fun 関数名 パターン1 パターン2 ... = 式;
fun式は(再帰)関数を定義する際に用います。
特殊形式
fun 関数名 = ブロック式;
関数の本体がブロック式の場合、引数を省略することができます。
相互再帰
fun 関数名1 パターン11 パターン12 ... = 式1
and 関数名2 パターン21 パターン22 ... = 式2
...
and 関数名n パターンn1 パターンn2 ... = 式n;
相互再帰させるときは、and
で区切って定義を並べます。
type文
単相型
type 型名 = タグ1(引数型11, 引数型12, ...) | タグ2(引数型21, 引数型22, ...) | ...;
type文は列挙したタグの値から構成される型を定義します。 タグはオプションで引数を持たせることができます。 引数が0個のタグを定義する場合は、括弧は省略します。
多相型
type 型名 <型パラメータ1, 型パラメータ2, ...> =
タグ1(引数型11, 引数型12, ...) | タグ2(引数型21, 引数型22, ...) | ...;
type文には型パラメータを持たせることができます。
相互再帰
type 型名1 <型パラメータ11, ...> = タグ11(引数型111, ...) | ...
and 型名2 <型パラメータ21, ...> = タグ21(引数型211, ...) | ...;
型の定義を相互参照する場合はand
で区切って指定します。
include文
include "ファイル名";
include文は指定したファイルを読み込み展開します。
ファイル名が./
から始まる場合は相対パスとして認識されます。
import文
import "DLL名";
import文は指定したDLLをプログラムに読み込みます。
using文
using 名前空間;
using文は指定した.NETの名前空間を修飾なしで使えるように指定する文です。
__define文
__define "シンボル";
__define文は指定したシンボルを定義状態にします。 シンボルを定義することでコンパイラの動作を変更することができます。
利用可能なシンボルには以下のものがあります。
シンボル | 役割 |
---|---|
CONSOLE_APPLICATION |
コンソールアプリケーションとしてコンパイルする |
HIDE_TYPE |
型の表示を抑制する |
SHOW_PARSE_RESULT |
構文解析・型推論結果を表示する |
SHOW_CLOSURE_RESULT |
クロージャ変換の結果を表示する |
__undefine文
__undefine "シンボル";
__undefine文は指定したシンボルを未定義状態にします。