2017-10-23: HashidsをRubyやCrystalで書いた。
やったこと
HashidsをRubyやCrystalで書いた
HashidsをRubyで書いてみた。実装が存在するのは知ってたのだけど、自分でアルゴリズムを確認したかったので。ちなみにJavaScript版を主に参考にした。どうもJavaScriptが公式実装っぽい感じがする。
で、Rubyで書いたあとに思い付きでCrystalにも移植してみた。これが結構簡単にできたので面白かった。仮引数の括弧で囲ったりとか、ちょっとインスタンス変数を宣言を追加したりとか、それくらい。純粋にアルゴリズムだと意外と簡単なのかもしれない。
引数に代入したあとに引数からインスタンス変数の型を推論しないようにした
https://github.com/crystal-lang/crystal/pull/5166
で、Hashidsを実装しているときに見つけたバグっぽい挙動を直しておいた。
数行の変更で修正できなかったのでちょっと実装が面倒だったのだけど、悪くない感じになったと思う。さすがに各メソッド毎にHashをアロケートはしたくなかったので‥‥。
思うこと
Crystal-JPをやっていきたい
やっていきたい。