既出かもしれんけど、Erlangでやってみた。(lists使わないやり方に修正。case を使うよう修正)
#!/usr/bin/escript
fizz(X) when X rem 3 == 0 ->
"Fizz";
fizz(_) ->
"".
buzz(X) when X rem 5 == 0 ->
"Buzz";
buzz(_) ->
"".
fizzbuzz(X) ->
case fizz(X) ++ buzz(X) of
"" ->
integer_to_list(X);
R ->
R
end.
repeat(C, _) when C == 0 ->
ok;
repeat(C, X) ->
io:format("~s~n", [fizzbuzz(X)]),
repeat(C - 1, X + 1).
main(_) ->
repeat(100, 1).
んー、この程度だからかもしれんけど、あんま逐次処理の言語と変わらんよーな……。