『東京喰種:re』
あれ、金木くんはどこへ行ったのでしょうか。前期も見ていたはずなのに、さっぱり繋がりません。主人公変わったのでしょうか。意味分からないが続けて見ようか見まいか迷いながらも、なんとか堪えて見続けているうちに、ようやく理解できました。理解できると、主人公が、ふと入った喫茶店でコーヒーを飲むシーンに感動。記憶がないのに味覚は覚えてるんですね。グールって、人間が食べるものは食べられないけど、唯一コーヒーは飲めるんです。
私も、子供の頃に食べた実家近くの汚いラーメン屋の、まずいラーメンが忘れられません。懐かしい味だから、ものすごい、まずいにもかかわらず、きっと美味しく感じると思います。まずくて美味しい。まずいけど、まずくなかった。たぶん今食べたら、まずいっまずいって、泣きながら美味しく食べると思います。
コーヒーということで、CoffeeScript使ってみます。流行った時は、まったく興味がなく、今回東京喰種見なければ、ずっと使う機会はなかったであろうスクリプト言語ですが、触ってみると意外に面白いです。ハマると思います。
インストールはapt-get install一発。
takk@deb9:~/tmp$ sudo apt-get install coffeescript
インタラクティブモード(REPL)を使うには、coffeeと入力します。
takk@deb9:~/tmp$ coffee coffee>
終了するには、Ctrl+C。もう一回と言われるので、もう一度Ctrl+C。
coffee> (To exit, press ^C again or type .exit) coffee> takk@deb9:~/tmp$
Rubyのirbのように、電卓代わりにできそうです。
takk@deb9:~/tmp$ coffee coffee> 2 + 3 * 4 / 5 4.4 coffee>
変数は=で代入できます。
coffee> a=10 10 coffee> a 10 coffee>
配列も..が使えるので便利です。
coffee> a=[1,2,3] [ 1, 2, 3 ] coffee> a=[1..10] [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] coffee>
関数。
coffee> Math.pow(2,8) - Math.sqrt(25) 251 coffee>
関数を自作する場合は、
関数名 = (引数) -> 内容
と定義します。
coffee> add = (a, b) -> a + b [Function] coffee>
実行すると、
coffee> add(10,20) 30 coffee>
if文を使って、ちょっと複雑にします。
coffee> max = (a, b) -> if a>b then a else b [Function] coffee> max(10, 20) 20 coffee>
次はsort関数の引数として渡す降順に並べる関数。
coffee> compare = (a, b) -> b - a [Function] coffee> a=[1..10] [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] coffee> a.sort(compare) [ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 ] coffee>
スクリプトを書いたファイルを指定して実行することもできます。
takk@deb9:~/tmp$ cat -n test.coffee 1 a=[1..10] 2 3 for i in a 4 console.log i 5 takk@deb9:~/tmp$ coffee test.coffee 1 2 3 4 5 6 7 8 9 10 takk@deb9:~/tmp$
JavaScriptにコンパイルするには、-cオプションをつけます。
takk@deb9:~/tmp$ coffee -c test.coffee takk@deb9:~/tmp$ ls test.coffee test.js takk@deb9:~/tmp$ cat -n test.js 1 // Generated by CoffeeScript 1.10.0 2 (function() { 3 var a, i, j, len; 4 5 a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; 6 7 for (j = 0, len = a.length; j < len; j++) { 8 i = a[j]; 9 console.log(i); 10 } 11 12 }).call(this); takk@deb9:~/tmp$
コメント