2016年5月19日木曜日

RUST でファイル入力処理

迷路のレイアウトをコードにベタ書きで埋め込むのは骨が折れるので、下のようなテキストで作成した迷路を読み込めるようにした。

だいぶ長くなってきたので、アルゴリズム以外を別ファイルに移した上で、ファイルから迷路を構築する処理を追加。
メインからはモジュールとして読み込んで利用する。
ファイル入力自体は比較的簡単だったが、エラー処理にだいぶ嵌められた。
エラー処理の仕様をきちんと理解しないままサンプルを見よう見まねでコピペしても全然コンパイルできなかった。
その分ちゃんと理解すれば柔軟なエラー処理ができるんだが、正直かなりとっかかりにくいと思う。

2016年5月14日土曜日

RUST 勉強中

環境構築

インストール

Ubuntu16.04 だと apt-get から入手できるようになった。

エディタ設定

Emacs 使いなので、melpa から lang-rust を導入

お勉強

何は無くとも RUST のドキュメントを熟読。
どうやらメモリ参照の透過性の高いプログラミング言語らしい。
なので、マルチスレッドとかに向いているそうだ。
一応オブジェクトっぽいこともできそうだが、オブジェクト指向言語ではないようだ。

実践

試しに単純な右手の法則で迷路を解くプログラムを書いてみた。

どうしても関数の引数が borrow ばっかりになってしまうが、これでいいんだろうか。

オブジェクト指向のようにポリモーフィズムばりばりで抽象化すると言うよりも、テンプレートで抽象化するが、テンプレートだとなんでもありになってしまうので、Trait で期待するテンプレートを指定するという感じか。
なんとなく、Cのマクロでこうできれば便利なんだけどなー、ってもどかしかったのができるようになっている感じで使っていて気持ちいい。