てきとう

てきとう

というかまず

FizzBuzz辺りから始めるべきなんじゃないだろうか?
と思い立ったので今更FizzBuzzを作ってみる。

-module(fizzbuzz).
%-compile(export_all).%for debug
-export([fizzbuzz/0,fizzbuzz/1]).

fizzbuzz()->
    fizzbuzz(100).
fizzbuzz(N) when is_integer(N)->
    fizzbuzz(1,N+1,[]).
fb(N)->
    case N of
	_ when N rem 15=:=0->
	    fizzbuzz;
	_ when N rem 5 =:=0 ->
	    buzz;
	_ when N rem 3 =:=0 ->
	    fizz;
	_ ->
	    N
    end.
fizzbuzz(N,L,Result) when N=:=L->
    lists:reverse(Result);
fizzbuzz(N,L,R)->
    fizzbuzz(N+1,L,[fb(N)]++R).

返り値として表示されるので特に表示部分は作ってない。
作るにしてもlists:map/2を使えば良い。

pfb(N)->
    lists:map(fun(X)-> io:format("~w~n",[X]) end,fizzbuzz(N)).


全然関係ないけど、Erlangにはremはあるのにmodは無いんだよね…。
どうやって作るか覚えてないや…。