PrologでFizzBuzz Golf
今更ながらFizzBuzz。最近はじめたPrologでanarchy golf - FizzBuzzに初挑戦。おそらくPrologでショートコーディングしようなんて人はあまりいないでしょう。
まず最初に書いたもの。
m:-between(1,100,N),(N mod 15=:=0->write('FizzBuzz');N mod 3=:=0->write('Fizz');N mod 5=:=0->write('Buzz');write(N)),nl,fail.
次はそれを短くしたもの。これで104byte。
m:-between(1,100,N),(N mod 15<1->X='FizzBuzz';N mod 3<1->X='Fizz';N mod 5<1->X='Buzz';X=N),\+writeln(X).
その後91byteまで短くしたもの。
m:-put(49),between(2,100,N),nl,((D=3,S='Fizz';D=5,S='Buzz'),N mod D<1*->[];S=N),\+write(S).
絶対もっと短くできる気がします。