Prolog

Код AS3:
shout( fizz, 3 ).
shout( buzz, 5 ).
fizz_buzz( Total, Total ) :- true.
fizz_buzz( Current, Total ) :-
shout( X, Current ),
shout( Y, Current ),
Current is Current + 1,
fizz_buzz( Current, Total),
X, Y.
Правда он не выводит данные как надо, я в Прологе со строками еще толком не работал ^_^, надо будет дописать как надо.
Добавлено через 23 минуты
Кстати, старый добрый ActionScript, тоже может тянутся на Олимп:

Код AS3:
var fizzBuzz:Function = function( count:int = 0 ):void
{
var result:String = '';
if( !( count % 3 ) )
result += "Fizz";
if( !( count % 5 ) )
result += "Buzz";
trace( count, result );
tail( count );
}
var tail:Function = function( count:int ):void
{
if( ++count <= 100 )
fizzBuzz( count );
}
fizzBuzz();
Надо выспавшись подумать, как старину Curry сюда приделать, а то Tail-Recurssion не слишком уж божественно ^_^