禅の公安スタイルでCoffeeScriptを学ぶ「coffeescript-koans」

https://github.com/sleepyfox/coffeescript-koans


禅において弟子に与えられる課題に公安というものがある。(「隻手の声」とか)
それが転じて、プログラミングの世界では穴埋め形式でプログラミング言語を学ぶことがKoan(Koans)と呼ばれるようになった。(ex.ruby_koans)


今回紹介するcoffeescript-koansCoffeeScriptを公安スタイルで学習できるものだ。
ひと通りCoffeeScriptチュートリアルを読んで文法を学んだ後でチャレンジしてみよう。
こういう場合はどうなるんだっけ?という疑問がでてきて、より深くCoffeeScriptを学べるはずだ。

実行方法

テストランナーはJasmineが使用されている。
基本的には/koans以下にある.coffeeファイルにあるFILL_ME_INに答えを埋めていくことになる。


例.

describe 'About Arrays', ->
  it 'should understand range slicing', ->
    oneToTen = [1..10]
    expect(oneToTen[3..5]).toEqual(FILL_ME_IN)

    myString = "my string"[0..2]
    expect(myString).toEqual(FILL_ME_IN)

    firstTwo = ['one', 'two', 'three']
    expect(firstTwo[FILL_ME_IN]).toEqual(['one', 'two'])


答えを記述した後は、答えを記述した.coffeeファイルを直接コンパイルするかまたはcakeコマンドでビルドするしよう。

cake build


その後、KoansRunner.htmlをブラウザ上で実行することで回答を確認することができる。

実行結果

まとめ

coffeescript-koansでCoffeeScriptの基礎から応用までを公安スタイルで楽しく学ぶことができる。
また、同時にJavascript用のBDDフレームワークであるJasmineについても学ぶことができて一石二鳥だ。


ちょっとCoffeeScriptの文法をかじってみた人は、チャレンジしてみてはいかがだろうか。