Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

RustでDouble-Array Trieの練習した

生きていると,ダブル配列からは逃れられない.ダブル配列作りたいことがあるかもしれない.無人島に漂着したときに正気を保つのに必要かもしれないし,飛行機の中で急に体調を崩した乗客のために,高速検索が必要になるかもしれない. Semper Paratusだ.

したがってRustでナイーブな実装を作ることにした.俺はまだ賢くないから,2本の配列の代わりに1本の配列に2フィールドの構造体を入れてキャッシュミスを減らす,みたいなことを思い付かない.動けばいいから,まだ雑で良い.

Rustパワーが足りなくて一日じゃできなそうなので,queryしてvalidateできるだけの関数を実装した.

練習した,といっても既存のダブル配列に対してvalidateして,確かに文字列を受け付けましたね,というのを確認しただけなので,insertやdeleteとかはできていないし,したがってダブル配列の構築もできない.

ナイーブなdouble array trieの実装

題材にしたTrieは手でちまちま作成した.人間圧縮機.

そういえば,全然話は変化するけれど,冬休みの研究としてModern Compiler implementation in Javaを読むつもりで,帰省して戻ってきたらコンパイラが書けるようになっている,というのを目指している.実家には何もないので,良い機会だと思う.

Modern Compiler Implementation in Java

Modern Compiler Implementation in Java

前世での徳が足りなくて,MLよくわからない.Javaっていう言語でいいでしょ,みたいな感覚でいる.日本語訳の本がぜんぜん市場から消失していて,マスクと一緒にどっかに行き,そのまま帰らない.英語は,まあまあ読めるのでまあよかろうというわけでKindle版を買い,適宜辞書機能を使えばいけるやろ,という気持ちでいる.600ページくらいあるので,銃弾は防げなくなるけれど,持ち運ぶのにはこちらのが便利なはず.

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?