そういえばTsukuba.Rに行ってきたんだった
- 2008-07-28
- カテゴリ: その他のプログラミング
- タグ: R 遅延評価 関数志向
なんか興奮してHaskellとか書いてたけど、一昨日Tsukuba.Rに参加して、Rを勉強してきたんだった。そこで、syou6162先生に教わったsapply()を使ってfizzbuzzを書いてみよう。
↓な感じ。
fizzbuzz <- function(x, y) {
sapply(x:y, function(n) {
ifelse(n %% 15, ifelse(n %% 3, ifelse(n %% 5, n, "Buzz"), "Fizz"), "FizzBuzz")
})
}
sapply()を使ったから、for文が消えて少しRっぽくなった気がするけど、いまいち芸がない。もう少し工夫ができそう。
Haskellっぽいfizzbuzz書けた!
- 2008-07-28
- カテゴリ: その他のプログラミング
- タグ: Haskell 入門 関数志向
昨晩、突然ひらめいてHaskellでfizzbuzzを書いてみた。
fizzbuzz :: Integer -> Integer -> [String]
fizzbuzz x y | x > y = []
| (mod x 15) == 0 = "FizzBuzz" : fizzbuzz (x + 1) y
| (mod x 3) == 0 = "Fizz" : fizzbuzz (x + 1) y
| (mod x 5) == 0 = "Buzz" : fizzbuzz (x + 1) y
| otherwise = (show x) : fizzbuzz (x + 1) y
なんかすごくHaskellっぽいコードを書けたような気がするんだけどどうだろう?少なくとも、依然書いた↓のfizzbuzzよりは手続き色が抜けてるんじゃないかな?

