このディレクトリの索引

%  
%  fizzbuzzの定義。実務の中で出てきたらきっとこう書くだろう。
%  組込述語を多用しているから、試験問題の解答としては不適だろう。
%  問題の中に 15 という数字が出てこないなら、これを使うべきではないと思う。
%  

fizzbuzz(N,X) :-
        M1 is N mod 3,
        M2 is N mod 5,
        fizzbuzz(N,M1,M2,X).

fizzbuzz(_,0,0,fizzbuzz) :- !.
fizzbuzz(_,0,_,fizz) :- !.
fizzbuzz(_,_,0,buzz) :- !.
fizzbuzz(N,_,_,N).

fb(N) :-
        fb(N,L),
        concat_atom(L,' ',S),
        writef('%t\n',[S]).

fb(N,L) :-
        findall(X,(
                    for(1,N1,N),
                    fizzbuzz(N1,X)),
                L).