Mercury 勉強メモ

関数論理型言語 Mercury を勉強するブログです.

Mercury サンプル

Mercury サンプル: 加減乗除のインタプリタ

加減乗除のある数式のパーサとインタプリタ. 抽象構文木を中間言語として作る. Syntax Tree: eadd(eadd(eint(1), emul(eint(2), eint(3))), eint(4)) Result: 11

Mercury サンプル: Hello, World. コンパイラ

プログラムでC言語のソースコードを出力して,コンパイル・実行するプログラムです. hello, world.

Mercury サンプル: 簡易headコマンド

UNIXのheadコマンドの簡易版です. ファイルの最初の10行を表示します. $ ./head head.m % head.m :- module head. :- interface. :- import_module io. :- pred main(io::di, io::uo) is det. :- implementation. :- import_module int, list, string.

Mercury サンプル: 入力を大文字に変換する

ユーザの入力を受け取って,受け取った文字列の英字を大文字にする. > hello HELLO > mercury MERCURY > あいうabcえお あいうABCえお > (Ctrl-D)

Mercury サンプル: 階乗の表

画面に階乗の表を表示するプログラム. 実行結果 fact(1) = 1 fact(2) = 2 fact(3) = 6 fact(4) = 24 fact(5) = 120 fact(6) = 720 fact(7) = 5040 fact(8) = 40320 fact(9) = 362880

Mercury サンプル: Hello, World.

画面に Hello, World. と表示するプログラム. 実行結果 $ mmc hello.m $ ./hello hello, world.