てきとうなメモ

本の感想とか技術メモとか

FizzBuzz

どうしてプログラマに・・・プログラムが書けないのか?
Perlだとすぐ書けそうなので,勉強中のErlangで書いてみた.

-module(f).
-export([fizzbuzz/0]).

fizzbuzz() ->
    lists:foreach(fun(X) -> io:format("~p~n", [fizzbuzz(X)]) end, lists:seq(1, 100)).
fizzbuzz(N) when N rem 15 == 0 ->
    "FizzBuzz";
fizzbuzz(N) when N rem 3 == 0 ->
    "Fizz";
fizzbuzz(N) when N rem 5 == 0 ->
    "Buzz";
fizzbuzz(N) ->
    N.

調べながら10分ぐらいかかった.まだまだ使えていない.

ちなみにlists:foreach各リストの要素に関数を適用する関数.ただし,値は返さない.で,lists:seq(1,100)はperlでいうところの(1..100).