Hatena::ブログ(Diary)

Marginal Leaves RSSフィード

2007-05-17

PrologでFizzBuzz Golf

今更ながらFizzBuzz。最近はじめたProloganarchy 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).

絶対もっと短くできる気がします。