コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

月曜日なのでコーヒーを使って、月曜日判定をつくりました

月曜日ですね

 月曜日ということで、突然ですが月曜日判定をしていこうと思います。やり方は簡単、月曜日なら月曜日です、それ以外の曜日なら違うよと表示するだけのシンプルなものです。それをコーヒーで再現しようというわけですね。えっ…コーヒーで……!?。月曜日と言えばビターなイメージがありますし、コーヒーで再現しようという考えも当然ですね。


はい、というわけでJavaScriptの方言であるCoffeeScriptで月曜日判定プログラムを作っていきます。

CoffeeScript
CoffeeScriptプログラミング言語のひとつである。コードはJavaScript のコードに変換される。
RubyPythonHaskellから影響を受けたシンタックスシュガーの導入により、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で生成されたファイルを確認します。
f:id:andron:20161225162551p:plain
はい、できました。判定によるとどうやら、今日って月曜日らしいですよ。

さあ、今日も張り切って頑張っていきましょう。

*1:CofeeScriptの拡張子は.coffeeとなります