2013-01-01から1年間の記事一覧
Mercury簡易SDLバインディング の改良版です.
P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます. ["c", "d", "e", "f", "g"]
Mercury でウインドウ内をボールが跳ねまわるプログラムを作ってみました.
Mercury でテトロミノを解くプログラムを作ってみました. いろいろと改善したいので暫定版です. $ ./tetromino +---+---+---+---+---+---+---+---+ | | | | | + + + + + +---+ +---+ | | | | | | +---+---+---+---+---+ +---+ + | | | | | +---+---+---+--…
P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます. ["a", "b", "c"] ["d", "e", "f", "g", "h", "i", "k"]
簡易SDLバインディング を使って,シェルピンスキーのギャスケットを描くプログラムをMercuryで作りました.
Mercuryで簡単にGUIプログラムを作りたかったので, Mercuryの簡易SDLバインディングを作りました. 自分の使いたい機能しか実装していないので, 使う場合は必要に応じて改造してください. ライセンスはパブリックドメインとします. 使い方 ソースファイ…
P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます. ["a", "b", "d", "e", "g", "h", "k"]
P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます. ["a", "a", "a", "b", "b", "b", "c", "c", "c"]
P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます. ["a", "a", "b", "b", "c", "c", "c", "c", "d", "d"]
P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます. Mercury では表現できないので省略.
P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます. Mercury 向けに問題を少し変更しています. ["a", "a", "a", "a", "b", "c", "c", "d", "e", "e", "e", "e"]
P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます. Mercury では表現できないので省略.
P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます. [{4, "a"}, {1, "b"}, {2, "c"}, {1, "d"}, {4, "e"}]
Mercury でラムダ計算+整数のパーサと評価器を作りました. syntax.m parser.m eval.m lambda.m コンパイル $ mmc --make lambda Making Mercury/int3s/lambda.int3 Making Mercury/int3s/eval.int3 Making Mercury/int3s/syntax.int3 Making Mercury/int3s…
加減乗除のある数式のパーサとインタプリタ. 抽象構文木を中間言語として作る. Syntax Tree: eadd(eadd(eint(1), emul(eint(2), eint(3))), eint(4)) Result: 11
Mercury の標準ライブラリから,数値演算に関するよく使いそうな述語をピックアップしました. float モジュール (浮動小数点数) 基本演算 :- func + (float::in) = (float::uo) is det. :- func - (float::in) = (float::uo) is det. 前置演算子 :- func (f…
Mercury の標準ライブラリから, よく使いそうな述語をピックアップしました. require モジュール error :- pred error(string::in) is erroneous. エラーメッセージを表示してプログラムを停止する. bool モジュール bool 型 :- type bool ---> no ; yes.…
Mercury の標準ライブラリから, リスとに関連するよく使いそうな述語をピックアップしました. 基本操作 list.length :- func list.length(list(T)) = int. :- pred list.length(list(_T), int). :- mode list.length(in, out) is det. リストの長さ. list…
Mercury の標準ライブラリから, 文字列に関連するよく使いそうな述語をピックアップしました. 基本操作 string.length :- func string.length(string::in) = (int::uo) is det. :- pred string.length(string::in, int::uo) is det. 文字列の長さを返す. …
プログラムでC言語のソースコードを出力して,コンパイル・実行するプログラムです. hello, world.
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.
ユーザの入力を受け取って,受け取った文字列の英字を大文字にする. > hello HELLO > mercury MERCURY > あいうabcえお あいうABCえお > (Ctrl-D)
画面に階乗の表を表示するプログラム. 実行結果 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
画面に Hello, World. と表示するプログラム. 実行結果 $ mmc hello.m $ ./hello hello, world.
Mercury の標準ライブラリから, 入出力に関連するよく使いそうな述語をピックアップしました. よく使う述語 io.print :- pred io.print(T::in, io::di, io::uo) is det. :- pred io.print(io.output_stream::in, T::in, io::di, io::uo) is det. 任意の値…
P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます. ["a", "a", "a", "a", "b", "c", "c", "d", "e", "e", "e", "e"] [["a", "a", "a", "a"], ["b"], ["c", "c"], ["d"], ["e", "e", "e"]]
きゐるさんのニコ生で煽られて書いた Mercury によるポーカーの役判定プログラムです. こんなもんじゃないですかね.十分デバックしてないんですが.
P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます. ["a", "a", "a", "a", "b", "c", "c", "d", "e", "e", "e", "e"] ["a", "b", "c", "d", "e"]
P-99: Ninety-Nine Prolog Problemsの問題にMercuryで解答していきます. 今回はMercury向けに問題を少し変更しています. ["a", "b", "c", "d", "e"]