Rust

RustでMD5ハッシュを計算する

別に難しくはないけど、いざ使いたいという時に方法を忘れてしまっており、何度か調べ直しているのでメモに残しておく。 以下のようにrust-cryptoを使えば実現可能。 サンプルプロジェクトの準備: $ rustc -V rustc 1.9.0 (e4e8b6668 2016-05-18) $ cargo ne…

RustとSBCLでのDAWG構築性能の比較メモ

Rustの勉強を兼ねて、cl-dawgというDAWGのCommon Lisp実装を移植して、rust-dawgというライブラリを作ってみた。 (DAWGは末尾部分を共有可能にしたトライの亜種。上記ライブラリでは、そのトライ木をDoubleArray形式で表現している。DAWGやDoubleArrayの構築…

Emacsのファイル保存時に自動的にrustfmtが適用されるようにする

コードフォーマッタによる整形がファイル保存時に自動で行われるようにするための手順メモ。 まずはrustfmtをインストール: # バージョン $ rustc -V rustc 1.5.0 (3d7cd77e4 2015-12-04) # インストール $ cargo install rustfmt $ export PATH=$PATH:$HOME…

現在時刻をUNIXタイムスタンプ形式で取得する

chronoというライブラリを使えば出来そう。 $ cargo new sample --bin $ cd sample $ echo -e '\n[dependencies]\nchrono="*"\n' >> Cargo.toml main.rsを修正: // src/main.rs extern crate chrono; use chrono::offset::local::Local; use chrono::duratio…

素数列生成

素数列の実装方法を考えてみたのでメモ。 基本的にはエラトステネスの篩と同じようなことを行っているはずだが、一度に保持する篩の範囲が(おそらく)必要最小限となっている。 (一つの既知の素数につき、ハッシュテーブル内の一つの枠しか消費しない) // fil…

Rustで関数型っぽい見た目のペアリングヒープを実装

Rustでペアリングヒープを実装してみたのでコードをメモとして残しておく。 無駄に関数型っぽい見た目の実装(selfを使わずに更新結果を戻り値で返す)となっている。 最低限のテストは書いたが正しく動作するかどうかは自信がない。 効率周りも無頓着。 // $ …