2008-05-01から1日間の記事一覧

差分リストやループ

Prologで差分リストや末尾再帰の述語を書く場合、たいてい以下のようなイデオムを利用する。 差分リスト % たどる diff_list(List, ResultList) :- diff_list_sub(List, [ResultList, []]). diff_list_sub([Head | Rest], [Result, Tail]) :- <Headを何かしてXにする> [Result, Appe</headを何かしてxにする>…

project euler problem 8 answer

最近、ブログに回答を書くのがマナー違反なんじゃないかと思えて来た。 take(N, [Lcar | Lcdr], [Lcar | R]) :- N > 0, N1 is N - 1, take(N1, Lcdr, R). take(0, _, []). % 数字のアトムを数値に変換 numeric_to_number(List, NumberList) :- numeric_to_nu…