なんか Prolog で解きやすそうな問題が転がっていたので解いてみる。 問題文 引用元: http://anago.2ch.sc/test/read.cgi/ghard/1437182679/#ghard/1437182679/218 Prolog による解法 コード 2015/07/21: 考慮漏れがあったので修正しました。なお、結果は変わりませんでした。 count(List, X, Count) :- count_sub(List, X, 0, Count). count_sub([], _, N, N). count_sub([Head | Xs], X, N, Count) :- (Head == X -> N1 is N + 1; N1 is N), count_sub(Xs, X, N1, Count). % トランプの数は1〜13まで。 card(X) :- betwee