月曜日ですね
月曜日ということで、突然ですが月曜日判定をしていこうと思います。やり方は簡単、月曜日なら月曜日です、それ以外の曜日なら違うよと表示するだけのシンプルなものです。それをコーヒーで再現しようというわけですね。えっ…コーヒーで……!?。月曜日と言えばビターなイメージがありますし、コーヒーで再現しようという考えも当然ですね。
はい、というわけでJavaScriptの方言であるCoffeeScriptで月曜日判定プログラムを作っていきます。
CoffeeScript
CoffeeScript はプログラミング言語のひとつである。コードはJavaScript のコードに変換される。
Ruby や Python、Haskellから影響を受けたシンタックスシュガーの導入により、JavaScript に比べ簡潔さと可読性を向上させたほか、配列内包 (Array comprehensions) やパターンマッチといった機能を追加している
よくわかんないこと書いてありますが「JavaScriptを短く書けるようにしたからつかってね」みたいな感じです。
準備編
JavaScriptですとブラウザを用意すれば勝手に動いてくれるのですが、CoffeeScriptだとコンパイルが必要になるので環境を用意します。
npm install -g coffee-script
でさくっと導入していきましょう。
インストールしたらとりあえず、coffee --version
でバージョンを確認していきます。今回利用するのはversion 1.12.2だそうです。さて、多分これで準備完了ですので早速がりがりと書いていきます。
できました
ソースコードができました。ファイル名はmonday.coffeeにします*1。拡張子のおかげでいい感じのファイル名になりますね。
# コーヒーで月曜判定 dateObj = new Date() weekDayList = ["日", "月", "火", "水", "木", "金", "土" ] weekDay = weekDayList[dateObj.getDay()] if weekDay is "月" console.log("今日は月曜日だよ") else console.log("まだ絶望するような時間じゃない")
文末のセミコロンがいらなかったり、if文などはインデントで表記したり、varで宣言する必要がなかったりなどいろいろと省略できるっぽいです。
これをcoffee -c monday.coffee
します。すると下のような.jsファイルが生成されます。
// Generated by CoffeeScript 1.12.2 (function() { var dateObj, weekDay, weekDayList; dateObj = new Date(); weekDayList = ["日", "月", "火", "水", "木", "金", "土"]; weekDay = weekDayList[dateObj.getDay()]; if (weekDay === "月") { console.log("今日は月曜日だよ"); } else { console.log("まだ絶望するような時間じゃない"); } }).call(this);
これをブラウザで確認とやりたいところですが、ブラウザで表示するような記述をしていないのでnode monday.js
で生成されたファイルを確認します。
はい、できました。判定によるとどうやら、今日って月曜日らしいですよ。
さあ、今日も張り切って頑張っていきましょう。
*1:CofeeScriptの拡張子は.coffeeとなります