MarkaEtc

アクセスカウンタ

zoom RSS Prolog

<<   作成日時 : 2009/03/28 11:14   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

最近 ふと昔使っていた プログラミング言語を使いたくなったので、大学のころに使っていたPrologを試しています。
最近のPrologはunicodeにも対応していているため、日本語も使えるし、Webアプリも作れるみたいです。

ちょっと試しに、昔作ったプログラムを今のPrologの文法に直して動かしてみました。

プログラムはこれ。SWI Prologを使っています。

% Story作成ルーチン
% 場所 − 主語
story(Shugo, Doushi, Basho) :-
basho_shugo(Basho, Shugo),
shugo_doushi(Shugo, Doushi).

basho_shugo(X, Y) :-
basho_shugo_s(X, Y).
basho_shugo_s('砂浜', Y) :-
hito(Y).
basho_shugo_s('砂浜','鶏').
basho_shugo_s('砂浜', 'ひよこ').
basho_shugo_s('空', Y) :-
tobumono(Y).

shugo_doushi(X, Y) :-
shugo_doushi_s(X, Y).
shugo_doushi_s('猟師','獲る').
shugo_doushi_s('母','笑う').
shugo_doushi_s('母','叱る').
shugo_doushi_s('わらべ','遊ぶ').
shugo_doushi_s('鶏','鳴く').
shugo_doushi_s('ひよこ','ついばむ').
shugo_doushi_s('カモメ','はばたく').
shugo_doushi_s(X,'飛ぶ') :-
tobumono(X).
shugo_doushi_s(X,'歩く') :-
hito(X).
shugo_doushi_s(X,'走る') :-
hito(X).
shugo_doushi_s(X,'食べる') :-
hito(X).
shugo_doushi_s(X,'話す') :-
hito(X).
shugo_doushi_s(X,'動く') :-
doubutu(X).

doubutu(X) :-
hito(X).
doubutu(X) :-
tori(X).
%doubutu(X) :-
% tobumono(X).

hito('母').
hito('わらべ').
hito('猟師').

tori('カモメ').
tori('鶏').
tori('ひよこ').

tobumono('カモメ').
tobumono('赤とんぼ').
run :- story(X,Y,Z),display([X,Y,Z]).


prologのコンソールでrun.
とすると、こんなものが出てきます。

.(母, .(笑う, .(砂浜, [])))
true ;
.(母, .(叱る, .(砂浜, [])))
true ;
.(母, .(歩く, .(砂浜, [])))
true ;
.(母, .(走る, .(砂浜, [])))
true ;
.(母, .(食べる, .(砂浜, [])))
true ;
.(母, .(話す, .(砂浜, [])))
true ;
.(母, .(動く, .(砂浜, [])))
true ;
.(わらべ, .(遊ぶ, .(砂浜, [])))
true ;
.(わらべ, .(歩く, .(砂浜, [])))
true

これ俳句作成プログラムの一部です。
今にして思えば結構つたないプログラムなので、ちゃんとしたものを作ってみようと思います。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Prolog MarkaEtc/BIGLOBEウェブリブログ
文字サイズ:       閉じる