これから伸びていって「今はPython(numpy)でやっているような数値計算もRustで、高速に抽象的に書けるようになるんじゃないかな」と思っています。
今まで何度かトライしたものの、「お前まだチュートリアルやってるのかよ」ってプログラミング友達に馬鹿にされる毎日でした。ひとまず使い方として想定する「数値計算プログラム」をRustで書いてみて、モチベーション保ちつつ実装していく作戦です。
Haskellで二重振り子のシミュレーションを書いた。実はこの振り子50本あって初期値を1兆分の1ぐらいずらしてあるので途中からめちゃくちゃ分岐する pic.twitter.com/3dh4Metcpj
— lotz△ (@lotz84_) 2017年5月22日
Haskellと同様にtraitで数学の抽象的な概念を扱えるらしいし、C++の代替言語を目指しているだけあってGC等のプログラマーがコントロールできない遅い処理が排除されています(その分lifetimeの管理が難しいのですが…)。
今日はひとまず、「配列を破壊的変更してprintする」ことをしました。初歩的ですが、ひとまず第一歩です。
$ rustup --version rustup 1.16.0 (beab5ac2b 2018-12-06)
コードはこんな感じ。
fn main() { let mut v: Vec<i32> = vec![1, 2, 3]; println!("v = {:?}", v); update_vector(&mut v); // debug print println!("v = {:?}", v); } fn update_vector(v: &mut Vec<i32>) { v.push(1); v[0] = 4; println!("v = {:?}", v); }