CoffeeScriptでFizzBuzzやってみた。

AngularJSをちょっぴり触ってみてるんだけど、
サンプルがCoffeeScriptで書かれてるものも
多かったりしたのでやってみた。

とりあえずこういうときはFizzBuzzだよね。

console.log "---FizzBuzz---"

class FizzBuzz
  say: (n) ->
    return 'FizzBuzz' if fizzbuzz(n)
    return 'Fizz' if fizz(n)
    return 'Buzz' if buzz(n)
    n

  # private method
  fizzbuzz = (n) ->
    fizz(n) && buzz(n)

  fizz = (n) ->
    n % 3 == 0
     
  buzz = (n) ->
    n % 5 == 0

player = new FizzBuzz

for i in [1..16]
  console.log "#{i} : #{player.say(i)}"

Rubyライクで書きやすい。
プライベートメソッドの書き方わからんかったけど、
オブジェクトの変数に処理を返す無名関数みたいな
こんなんでいいのかな?
コンストラクターとか継承とかもできるので、
JSでオブジェクト指向っぽくやりたかったらCoffeeScriptよいかも。

ちなみに、.coffeeはVim

thinca/vim-quickrun · GitHub

使えば、コンパイルして実行までいっきにやってくれて超絶便利ですはい。