fizzbuzz2

さっきのは大きい数でfizzbuzzすると表示が切れてしまっていたので、表示用関数をつくってみた。
さらに表示の関係でlistの中身を全部文字列にした。

#!/opt/local/bin/escript

main(_)->
    putList(lists:reverse(fizzbuzz(3000))).

fizzbuzz(0) ->
    [];
fizzbuzz(X) when X rem 3 =:= 0, X rem 5 =:= 0 ->
    ['FizzBuzz'|fizzbuzz(X-1)];
fizzbuzz(X) when X rem 3 =:= 0 ->
    ['Fizz'|fizzbuzz(X-1)];
fizzbuzz(X) when X rem 5 =:= 0 ->
    ['Buzz'|fizzbuzz(X-1)];
fizzbuzz(X) ->
    [erlang:integer_to_list(X)|fizzbuzz(X-1)].

putList([])->
    io:format("~n");
putList( [Head|Tail]) ->
    io:format("~s ",[Head]),
    putList(Tail).