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は無いんだよね…。
どうやって作るか覚えてないや…。