FizzBuzz

投稿者 okkez 2007-05-26 02:03:00 GMT

Haskell
import System main = putStr $ unlines [fb(x) | x <- [1..100]] fb n | n `mod` 15 == 0 = "FizzBuzz" | n `mod` 5 == 0 = "Buzz" | n `mod` 3 == 0 = "Fizz" | otherwise = show n
Erlang
-module(fizzbuzz). -export([fizzbuzz/0,fb/1]). fizzbuzz() -> [ fb(X) || X <- lists:seq(1,100)]. fb(N) when N rem 15 =:= 0 -> "FizzBuzz"; fb(N) when N rem 5 =:= 0 -> "Buzz"; fb(N) when N rem 3 =:= 0 -> "Fizz"; fb(N) -> N.

Erlang の方の動かし方。(インストールは略) * erl シェルを起動

1> c(fizzbuzz.erl). %=> コンパイル
{ok,fizzbuzz}
2> fizzbuzz:fizzbuzz. %=> 関数呼び出しの括弧は必要
** 1: illegal expression **
3> fizzbuzz:fizzbuzz().
[1,
 2,
 "Fizz",
 4,
 "Buzz",
 "Fizz",
 7,
 8,
 "Fizz",
 "Buzz",
 11,
 "Fizz",
 13,
 14,
 "FizzBuzz",
 16,
 17,
 "Fizz",
 19,
 "Buzz",
 "Fizz",
 22,
 23,
 "Fizz",
 "Buzz",
 26,
 "Fizz",
 28,
 29|...] %=> リストの出力は省略される
4>

カテゴリ  | タグ ,  | コメントなし

Haskell勉強会 #4

投稿者 okkez 2007-05-19 13:59:00 GMT

行ってきました。

前回参加しなったので、すみっこで前回の範囲のコードをこっそり書いてました。 map のあたりの書き方がよくわからなかったので、時間を作ってもう一回確認しておこうと思います。

あとは、関数の定義の読み方を思い出すのに時間がかかってしまったのが惜しいところです。

# 同じような内容のことを mixi の日記にも書いたのでこれはブログの練習。

カテゴリ  | タグ  | コメントなし