Pythonのような文法を持っているのが特徴のようです。
このCoffeeScriptを学ぼうと思い、いくつかのサンプルを書いてみました。
まず基本、FizzBuzzです。
(下記はalertで書いたので実行すると大変なことになるから気をつけてね)
- for a in [1..100]
- if a%15 == 0
- alert "FizzBuzz"
- else if a%3 == 0
- alert "Fizz"
- else if a%5 == 0
- alert "Buzz"
- else
- alert a
インデントでブロックにすると、やっぱり見やすいですよね。
また、メソッドも()がつかないです。
これをJavaScriptに変換すると、以下のようになります。
- var a;
- for (a = 1; a <= 100; a++) {
- if (a % 15 === 0) {
- alert("fizzbuzz");
- } else if (a % 3 === 0) {
- alert("fizz");
- } else if (a % 5 === 0) {
- alert("buzz");
- } else {
- alert(a);
- }
- }
関数名 -> (引数) (関数本体)のです。 CoffeeScriptはwhile文が使えます
- sort = (array, l, r) ->
- mid = ~~(l+r/2)
- return if l >= r
- i = l
- j = r
- pivot = array[mid]
- while true
- while array[i] < pivot
- i++
- while array[j] > pivot
- j--
- break if i >= j
- t = array[i]
- array[i] = array[j]
- array[j] = t
- sort array, l, i-1 if l < i-1
- sort array, j+1, r if j+1 < r
- a = [1, 4, 3, 7, 6, 5, 2, 8]
- sort a, 0, 7
- alert a
- var a, sort;
- sort = function(array, l, r) {
- var i, j, mid, pivot, t;
- mid = ~~(l + r / 2);
- if (l >= r) return;
- i = l;
- j = r;
- pivot = array[mid];
- while (true) {
- while (array[i] < pivot) {
- i++;
- }
- while (array[j] > pivot) {
- j--;
- }
- if (i >= j) break;
- t = array[i];
- array[i] = array[j];
- array[j] = t;
- }
- if (l < i - 1) sort(array, l, i - 1);
- if (j + 1 < r) return sort(array, j + 1, r);
- };
- a = [1, 4, 3, 7, 6, 5, 2, 8];
- sort(a, 0, 7);
- alert(a);
0 件のコメント:
コメントを投稿