トップページ > プログラム > 2016年11月17日 > u2Ucvcf0

書き込み順位&時間帯一覧

5 位/206 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000120300000000006



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
793
797
【論理】Prolog【初心者】
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net

書き込みレス一覧

【論理】Prolog【初心者】
843 :デフォルトの名無しさん[]:2016/11/17(木) 10:52:19.73 ID:u2Ucvcf0
>>70
SWI-Prologだと、read_line_to_codes/2というような述語があります。第一引数に
ストリームがきます。
?- read_line_to_codes(user_input,X).
: qaz
X = [113, 97, 122].
となります。
get_line(Stream,Line) :-
read_line_to_codes(Stream,L),
atom_codes(Line,L).
という簡単な定義でピリオドなし入力を定義できます。
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
793 :デフォルトの名無しさん[]:2016/11/17(木) 11:34:22.18 ID:u2Ucvcf0
情報を保存しながら、進むならば、ループだっていつかオーバーフローする。
保存せずに計算できるならば、再帰でもオーバーフローしないかもしれない。
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
795 :793[sage]:2016/11/17(木) 11:44:39.48 ID:u2Ucvcf0
>>794
上の行? 下の行? それとも両方?
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
797 :793[sage]:2016/11/17(木) 13:03:18.99 ID:u2Ucvcf0
>>796
Prologですから再帰述語で関数ではありませんが、

repeat :- 割り込みあり,!.
repeat :- repeat.

の場合、スタックの一番上でpop,pushを繰り返すことが可能なのではないでしょうか。
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
798 :797[sage]:2016/11/17(木) 13:06:35.00 ID:u2Ucvcf0
すみません。まちがえました。これではrepeat内でのループになってしまって
Prologのrepeatになりませんでした。分かり難くなりますから割り込みを外します。

repeat.
repeat :- repeat.
なあ、再帰関数好きな人いる? パート3 [転載禁止]©2ch.net
799 :793[sage]:2016/11/17(木) 13:16:05.70 ID:u2Ucvcf0
>>797 だと、
繰り返しを最終回にするための割り込みとしたかったのですが、
実行開始の遅延を終了するための割り込みになってしまっています。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。