いろんな言語で宿題 第五編at TECHいろんな言語で宿題 第五編 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト50:デフォルトの名無しさん 10/06/23 08:17:40 >>49 (>>42) % Prolog これも致命的な欠陥がありました。一応訂正したものから示すと、 出会うまでリストを手繰る(_求めるもの,[_求めるもの|R]) :- write_formatted('!%t!\n',[_求めるもの]). 出会うまでリストを手繰る(_求めるもの,[A|R]) :- list(A), 出会うまでリストを手繰る(_求めるもの,A). 出会うまでリストを手繰る(_求めるもの,[_|R]) :- list(A), 出会うまでリストを手繰る(_求めるもの,R). 出会うまでリストを手繰る(_求めるもの,[A|R]) :- \+(list(A)), write_formatted('%t-',[A]), 出会うまでリストを手繰る(_求めるもの,R). % >>49 のどこがいけないかというと、Aがリストでないとき、 % \+(list(A))の節が実行されるのではなく、list(A)の節の ;より後の副目標が % 実行されてしまいます。これだと write_formatted('%t-',[A]),による % トレースができませんね。 出会うまでリストを手繰る(_求めるもの,[A|R]) :- list(A), 出会うまでリストを手繰る(_求めるもの,A); 出会うまでリストを手繰る(_求めるもの,R). 出会うまでリストを手繰る(_求めるもの,[A|R]) :- \+(list(A)), write_formatted('%t-',[A]), 出会うまでリストを手繰る(_求めるもの,R). 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch