『東京喰種: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$



コメント