2016-12-24: レシートを印刷しまくったり、Iterator#flat_mapをIteratorを返すようにしたり
クリスマスイブとは?
やったこと
レシートを印刷しまくった
バイトでレシートを印刷していた。正確にはPythonでレシートを印刷するプログラムを書いた。
Pythonにはpython-escposというレシートプリンタを操作するライブラリがあるから余裕、かと思ったけどそんなことなかったぜ。というのもこのライブラリは日本語に対応していなかったので、エプソンの開発者向けサイトでプリンタのコマンドを調べてきて、日本語部分は直接自力で送る必要があった。まあ調べれば出てくる情報でよかったと思う。
レシート印刷するのめっちゃ楽しい。
Iterator#flat_mapがIteratorを返すようにした
Iterator#flat_map returns an iterator by MakeNowJust · Pull Request #3766 · crystal-lang/crystal
RubyのEnumerator::Lazyのflat_mapがEnumerator::Lazyを返す仕様だったのでそれに追従してみようかと。
とはいえこの実装は完全ではなくて、返ってくるArrayやIteratorの型がそれぞれ違うと失敗することがある。ただ、これを直すためには色々と面倒だったのでまだそれを直しはしなかった。