このディレクトリの索引

fizzbuzz(Nth,X) :-
        fizzbuzz([_],[_,_],[_,_,_,_],Nth,X).

fizzbuzz(L1,L2,L3,Nth,X) :-
        length(L1,Nth_1),
        fizzbuzz_1(Nth_1,L2,L3,L2_1,L3_1,Y),
        fizzbuzz_2(L1,L2_1,L3_1,Nth_1,Nth,Y,X).

fizzbuzz_2(L1,L2,L3,Nth,Nth,X,X).
fizzbuzz_2(L1,L2,L3,_,Nth,_,X) :-
        fizzbuzz([_|L1],L2,L3,Nth,X).

fizzbuzz_1(_,[],[],[_,_],[_,_,_,_],'BuzzFizz').
fizzbuzz_1(_,[],[_|R3],[_,_],R3,'Fizz').
fizzbuzz_1(_,[_|R2],[],R2,[_,_,_,_],'Buzz').
fizzbuzz_1(N,[_|R2],[_|R3],R2,R3,N).