Prolog初心者のスレ
これは良い言語だ…
【論理】Prolog【初心者】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2010/11/06(土) 13:00:56285デフォルトの名無しさん
2011/10/22(土) 23:23:48.25 このfor/3を実装するのに、結構試行錯誤したわ
http://www.ifcomputer.com/IFProlog/Manuals/v4.1/reference/for/home_en.html
Prologって全然直感的じゃないな
http://www.ifcomputer.com/IFProlog/Manuals/v4.1/reference/for/home_en.html
Prologって全然直感的じゃないな
286デフォルトの名無しさん
2011/10/22(土) 23:51:13.94 >>285
これはC言語等の下劣な仕様に阿っているのが悪いのであって、
第二引数と第三引数を交換するだけで、
(分かりやすくするため 最終値 >= 初期値 のケースだけにする)
for(_初期値_式,_最終値_式, _カウンタ) :-
_初期値_式 > _最終値_式,!,fail.
for(_初期値_式,_最終値_式, _カウンタ) :-
_カウンタ is _初期値_式.
for(_初期値_式,_最終値_式, _カウンタ) :-
_初期値_式_2 is _初期値_式 + 1,
for(_初期値_式_2,_最終値_式, _カウンタ).
当たり前のPrologの述語となる。強いてちょっと
気持ち悪いのは第一節の !,fail. くらい。
これはC言語等の下劣な仕様に阿っているのが悪いのであって、
第二引数と第三引数を交換するだけで、
(分かりやすくするため 最終値 >= 初期値 のケースだけにする)
for(_初期値_式,_最終値_式, _カウンタ) :-
_初期値_式 > _最終値_式,!,fail.
for(_初期値_式,_最終値_式, _カウンタ) :-
_カウンタ is _初期値_式.
for(_初期値_式,_最終値_式, _カウンタ) :-
_初期値_式_2 is _初期値_式 + 1,
for(_初期値_式_2,_最終値_式, _カウンタ).
当たり前のPrologの述語となる。強いてちょっと
気持ち悪いのは第一節の !,fail. くらい。
287デフォルトの名無しさん
2011/10/22(土) 23:59:17.38288286
2011/10/23(日) 00:10:58.32 一般にPrologでは
foo(S,E,X) :- の形式をとり、
Sはカウンタ、X でそれを取り出す。
Eは限界値を示す。
これで数値カウンタループ述語を構成する。
for/3は
repeat.
repeat :- repeat.
のrepeatパターンの述語。
member/2やappend/3もこのパターン。
どれも非決定性述語である。
member(A,[A|_]).
member(A,[_|R]) :- member(A,R).
append([],L,L).
append([U|X],Y,[U|Z]) :- append(X,Y,Z).
?- append(_,_,_), ・・・ とするとrepeatと同じ機能となる。
(ただし繰り返しが多くなるとスタックオーバーフローが起きるかも知れない)
foo(S,E,X) :- の形式をとり、
Sはカウンタ、X でそれを取り出す。
Eは限界値を示す。
これで数値カウンタループ述語を構成する。
for/3は
repeat.
repeat :- repeat.
のrepeatパターンの述語。
member/2やappend/3もこのパターン。
どれも非決定性述語である。
member(A,[A|_]).
member(A,[_|R]) :- member(A,R).
append([],L,L).
append([U|X],Y,[U|Z]) :- append(X,Y,Z).
?- append(_,_,_), ・・・ とするとrepeatと同じ機能となる。
(ただし繰り返しが多くなるとスタックオーバーフローが起きるかも知れない)
290デフォルトの名無しさん
2011/10/23(日) 00:14:27.91 ありがちなミス
for(Lower,X,Upper) :-
Lower = X ; for(Lower+1,X,Upper).
for(Lower,X,Upper) :-
Lower = X ; for(Lower+1,X,Upper).
291デフォルトの名無しさん
2011/10/23(日) 00:19:43.74292デフォルトの名無しさん
2011/10/23(日) 00:30:08.03 >>291
立派なコードだと思うけど。
立派なコードだと思うけど。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 [蚤の市★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 [蚤の市★]
- クリスマスの「予定なし」54% [少考さん★]
- 【話題】好きな鍋は?! 「寄せ鍋」「キムチ鍋」「水炊き」「もつ鍋」「豆乳鍋」「ちゃんこ鍋」「ごま坦々鍋」「トマト鍋」 [ひぃぃ★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 地震 [Hitzeschleier★]
- 【実況】博衣こよりのえちえち機動戦士ガンダム逆襲のシャア🧪
- 不動産屋、ついに帰化した日本人まで「内見の段階で」お断りしはじめる [377482965]
- 茶ぁしばこうや···
- J( 'ー`)し「で、アンタなんで働かないの?」 ワイ👶「理由は2つありまして~」🏡
- 日本人億り人、大丈夫なFXで稼ぎまくる… [667744927]
- おさかなさんあつまれえ
