プールとポケモンスタンプラリー

津田沼駅前にはカジュアルに行けるプールがないので、いつも 千葉県国際総合水泳場 - CHIBA INTERNATIONAL GENERAL SWIMMING CENTER にお世話になっている。市営バスを使うと、比較的安価に新習志野までいけるのだ。

息子、少しずつでは泳げるようになってきているけど息継ぎが鬼門。

その後は、新浦安までいってポケモンスタンプラリーの中間ゴール(?)の品を貰って帰宅。

「Go言語でつくるインタプリタ」の付録を終わらせた

「Go言語でつくるインタプリタ」をご恵贈いたきました | けんちゃんくんさんのWeb日記 で本編はおわっていたので、付録の「マクロ」を一気におわらせた。

実はマクロを自分で書いたことはもちろん、マクロがある言語を使った経験もほとんどないので、かなり不安があったというのが正直なところ。

ただ、最初にマクロっていうのは2つの陣営があることと、「データとしてのコード」陣営の面白さを最初に説明してくれるので、「あーそういうことね」という感じになった。

写経していくも、やっぱり quoteunquote がいりまじるコードはテストコードを見てもなかなか頭に入ってこない。なので、とりあえず書いて動かすという感じでやっていた。

結果、完全理解には程遠いが、言語処理系の中で、マクロの宣言から展開されるまで流れはなんとなく理解できたのではないだろうか。

それにしても、この書籍は本当によくできてる。みんな写経するといいと思う!

東亜飯店

なんと、 Takatoshi Ono(@tk_ono) が退職してしまう :cry: ということで、盛大に送り出してきた。

ペパボに入って最初に仕事だった新カゴチームのときから、沢山おわせになりました。次の職場でもバーンとやってくれると思うので、楽しみにしてます!

GitHub(Enterprise)上に表示される絵文字を全部 :+1: にする

chrome extension でも作ってみようとおもってやっていた。

この件に限らず、コミュニケーションを楽しくできる可能性のある絵文字のせいで逆に気持ちが沈んじゃうととても持ったいない。もう全部めでたい感じにしちゃえばいいと思う。

コードはこのへん。

https://github.com/kenchan/memory/tree/master/chrome_extension-typescript-study

手元では、manifest.jsonの許可するURLにGHEのを足して使ってみよう。

「Go言語でつくるインタプリタ」をご恵贈いたきました

翻訳者である @darashi から「Go言語でつくるインタプリタ」をいただきました。ありがとうございます。

これを読む前の自分の知識レベルは

という状況でしたが、Go言語のシンプルな言語仕様のおかげもあり、無事写経を完走できました。

本書の全体の流れは、「まずテストを書き、そのテストが通るように実装する」というテスト駆動開発で進んでいきます。テストコードの時点で期待する動作がわかるので、「今からこれが動くようになるのか」というのがイメージしやすく、飽きることなく最後まで楽しめるように工夫されていると感じました。また、REPLを比較的早いで段階で使えるようにしているというのも良いと思ったポイントです。自分が入力した文字列が実行されるというのは、テストがグリーンになるのとはまた違った感動がありますね。

しっかりとしたプロセスで進むにもかかわらず、字句解析・構文解析からスタートして、最後には配列やハッシュ、高階関数まで実装されたインタプリタが、なんとわずか230ページで完成できるのは本当にすごい(マクロまでいれると280ページ)。当然、完成したときはとても嬉しいのですが、各章でも「おおっ」と思うポイントはあって

  • REPLでインタラクティブに字句解析の結果が出力されたとき
  • 中置演算子を構文解析するテクニックを図で理解できたとき
  • 配列はハッシュの添え字アクセスを中置演算子として扱ってうまく動いたとき

あたりが私のテンションがあがったところでした。

読み終えた今、本書の帯にある 「つくる」は「わかる」 という言葉を実感しています。今までぼんやりしたイメージだった「プログラミング言語を作る」ということが、以前よりも格段に「わかる」状態になったように思います。

本書の内容がすぐに役に立つ人というのがどれだけいるのかはわかりませんが、プログラマにとっての一番身近な道具であるプログラミング言語とインタプリタについて理解するのに最適な1冊だと思います。オススメです。