読者です 読者をやめる 読者になる 読者になる

Patterns #2

https://doc.rust-lang.org/book/patterns.html let x = 5; match x { ref r => println!("Got a reference to {}", r), } // -> "Got a reference to 5"が表示される match x { 3 => println!("three"), 5 => println!("five"), _ => println!("_"), } // -…

Patterns

https://doc.rust-lang.org/book/patterns.html 構造体のmatchもできるのが便利。 struct Point { x: i32, y: i32, } let origin = Point { x: 2, y: 4 }; match origin { Point { x, y } => println!("({},{})", x, y), } // -> (2,4) match origin { Point…

Match

https://doc.rust-lang.org/book/match.html matchした結果を変数に代入できるのが良い。 let number = match x { 1 => "one", 2 => "two", 3 => "three", 4 => "four", 5 => "five", _ => "something else", };

Enums

https://doc.rust-lang.org/book/enums.html enumについて。色々な型を対象にできる事は分かったが、それ以上の事がいまいち分からなかった。

Structs

https://doc.rust-lang.org/book/structs.html メンバ名をつけない構造体をタプルと扱う感じみたい。 構造体のメンバをまとめて設定する方法があるのが良い。C言語はできないのですよね。 let mut point = Point3d { x: 0, y: 0, z: 0 }; point = Point3d { …

Mutability

https://doc.rust-lang.org/book/mutability.html C言語のconstと逆の働きと捉えると考えやすいかもしれない。 fn main() { let mut x = 5; let mut x2 = 7; let y = &mut x; *y += 1; // y = &mut x2; // できない println!("{}", *y); let mut x = 5; // …

Lifetimes #3

https://doc.rust-lang.org/book/lifetimes.html 理解が追いついていない。 リソースを安全に扱うために、どこまではリソースが生きているかを明確にしているということだろうか。 基本的にはコンパイラの方で、<'a>は補完してくれるようなので嬉しい。

Lifetimes #2

https://doc.rust-lang.org/book/lifetimes.html を少々。 struct Foo<'a> { x: &'a i32, } fn main() { let y = &5; // this is the same as `let _y = 5; let y = &_y;` let f = Foo { x: y }; println!("{}", f.x); } &5と記載可能な事に驚き。

Lifetimes

https://doc.rust-lang.org/book/lifetimes.html を少々。 fn main() { let r; // Introduce reference: r { let i = 1; // Introduce scoped value: i r = &i; // Store reference of i in r } // i goes out of scope and is dropped. println!("{}", r); …

References and Borrowing #2

https://doc.rust-lang.org/book/references-and-borrowing.html 変数書き換え不可にするのは大変なんだな。 let mut x = 5; { let y = &mut x; // -+ &mut borrow starts here *y += 1; // | } // -+ ... and ends here println!("{}", x); // <- try to bo…

References and Borrowing

https://doc.rust-lang.org/book/references-and-borrowing.html を途中まで。 特別気になる箇所はなし。 fn main() { fn sum_vec(v: &Vec<i32>) -> i32 { return v.iter().fold(0, |a, &b| a + b); } fn foo(v1: &Vec<i32>, v2: &Vec<i32>) -> i32 { let s1 = sum_vec(v1);</i32></i32></i32>…

Owership #2

https://doc.rust-lang.org/book/ownership.html 単一(スカラ?)な変数はコピーなので、代入元でも代入先でも使えるが、 複数(ベクタ)の要素の変数は参照なので、代入先では使えるが、代入元では使用不可とするみたいな話なのかな。 let a = 3; let v1 = vec!…

Owership

https://doc.rust-lang.org/book/ownership.html を途中まで。 関数の中で関数が宣言できるらしい。 コメントにしている箇所は、コメントアウトするとエラーになる処理。 fn main() { let v = vec![1, 2, 3]; println!("v[0] is: {}", v[0]); let v2 = v; //…

Vectors

https://doc.rust-lang.org/book/vectors.html 書き換え可能な参照と、書き換え不可能な参照がある。 fn main() { let mut v = vec![1, 2, 3, 4, 5]; for i in &v { // *i = *i + 1; // 不可能 println!("A reference to {}", i); } for i in &mut v { *i = …

Loops

https://doc.rust-lang.org/book/loops.html Loop labels( 条件付きgoto )がよい。 サンプルコードはcontinueだけだったが、breakでも意図通り動く。 fn main() { 'outer: for x in 0..10 { 'inner: for y in 0..10 { if x % 2 == 0 { continue 'outer; } //…

if #2

https://doc.rust-lang.org/book/if.html 3項演算子的な使い方ができる。 println!の引数に使えるかを試してみたところ普通に動いた。 fn main() { let y = if x == 5 { 10 } else { 15 }; // y: i32 println!("y is {}", y); println!("? is {}", if x == 5…

if

https://doc.rust-lang.org/book/if.html カッコが無くても問題ない。 fn main() { let x = 5; if x == 5 { println!("x is five!"); } if (x == 5) { println!("x is five!"); } } 逆にカッコをつけると警告が・・・ $ cargo run warning: unnecessary pare…

Comments

Comments。 rustdocというツールでコメントからドキュメント生成できるらしい。Markdownで記載できるらしい。 ブロックコメントについて説明は無かったけども、/* comment */は普通にコメントになった。 //! # The Rust Standard Library //! //! The Rust S…

Primitive Types

Primitive Typesを読む。 型の名称がPythonっぽい印象。

Functions

Functionsを読む。 return x + 1;とx + 1(セミコロンがない)が同じ扱いなのが面白い。 あと、プロトタイプ宣言不要なのがC言語から入った身としては嬉しい。 fn main() { let f: fn(i32) -> i32; // 関数ポインタ f = add_one; print_number(5); print_sum(5…

Variable Bindings

Variable Bindingsを読む。 幾つか面白い動きがあった。デフォルトが書き換え不可(immutable)だからできる動きなんだろうな。 fn main() { /* スコープ:{} 以下でのみ有効 */ let x: i32 = 17; { let y2: i32 = 3; println!("The value of x is {} and valu…

Guessing Gameを読み進める4

Guessing Gameを最後まで読み進めた。 loop、continue、breakなどループ関係の文法が出てきた。 無限ループが簡単に作れるのと、繰り返し処理と分かり易いのが良い。

Guessing Gameを読み進める3

Guessing Gameを読み進める。 ( Comparing guessesを読んだ。 ) 型チェックが結構厳しめっぽい。

Guessing Gameを読み進める2

Guessing Gameを読み進める。 ( Generating a secret numberを読んだ。 ) Cargo.tomlにrand="0.3.0"を追記すると、cargo buildするだけで、関連するライブラリを引っ張ってきてくれる。便利。 $ cargo build Updating registry `https://github.com/rust-lan…

Guessing Gameを読み進める

Guessing Gameを読み進める。 let foo = 5; // immutable. let mut bar = 5; // mutable 普通に宣言すると書き換え不可の変数になるみたい。

Cargo

Cargoというビルドツールを使ってみる。 [package] name = "hello_world" version = "0.0.1" authors = [ "MIURA Yasuyuki <xxxxxxxx@xxxxxx.xxx>" ] $ mkdir src $ mv main.rs src/main.rs $ cargo build $ cargo run ソースファイルをsrcディレクトリに置く必要があったり、最近</xxxxxxxx@xxxxxx.xxx>…

ハローワールド

Rustでハローワールド。 fn main() { println!("Hello, world!"); } !が付くと、普通の関数ではなく、マクロになるらしい。詳しいことは今後学ぶ。 実行は以下。 $ rustc main.rs $ ./main 拡張子は、rsなんですね。

Rust始めます

Rustの勉強を始めます。 今日は環境をインストールするところまで。 $ curl https://sh.rustup.rs -sSf | sh $ source $HOME/.cargo/env $ rustc --version 次回以降も使えるようにsource $HOME/.cargo/envを$HOME/.bash_profileに追記。

Tensorflow動いた

TensorFlow試してみた - アウトスタンディングなプログラマを目指してにて、動かせていなかったTensorflowをとりあえず動かせた。 ディープラーニングの有名ライブラリ5種を最短距離で試す半日コース(TensorFlow, Chainer, Caffe, DeepDream, 画風変換) - …

複数ファイルをまたがって検索する事を何というか?

一般的には「全文検索」になると思うのですが、会社内では違っていた話。 会社で使用しているエディタはいくつかあるのですが、よく使われているエディタの一つが「MIFES」。 このエディタにグローバル検索という機能があり、複数ファイルを同時に検索できる…

NGK2015B(名古屋合同懇親会 2015 忘年会)に参加した

NGK2015B(名古屋合同懇親会 2015 忘年会)に参加してきました。 昼の部は、他領域に渡るLTが良い刺激になりました。 ラジオ体操をして、良い得点だったのでTシャツをいただいたり。来栖川電算さんありがとうございます。 夜の部は、美味しい料理を食べなが…

TensorFlow試してみた

TensorFlowを試してみました。まだ、上手く動かせていません。 Mac OSなので、pipを使ってインストール。 $ pip install https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl 問題なくインストールできました。動かしてみる。…

標準出力をcloseするとどうなるのか?

c

標準出力を閉じると、出力されなくなるのか試してみた。 当たり前だけど、出力されなくなった。( Mac OS X で確認 ) gist8b6f99ad7d38734b76c1 $ gcc stdout_close.c $ ./a.out stdout:10 stderr:10 fclose(stdout) stderr:10 $ gcc -v Configured with: --p…

お試しコード

c

昔作ったお試しコードを見つけたので、アップする。 関数ポインタをmallocで確保するって事をやってる。 C言語でオブジェクト指向的なプログラミングをやってみようとして作ったコードだったと思う。 gist65664512fc7c5f930760

codebreak;からBitbucketへ引越

codebreak;がサービス終了ということで、Bitbucketへプライベートリポジトリを引っ越しました。 Bitbucketに既存リポジトリをインポートする仕組みができあがっていて、思ったより簡単に引越できました。 ローカルの.git/configもurlの部分を直したのみで、…

変数の有効範囲をどう伝えるか

c

仕事で変数の有効範囲を他者に説明する時に混乱したので整理してみる。 変数の有効範囲は、下記2つの要素で決まる。 宣言箇所( 関数内, 関数外 ) 記憶クラス指定子( extern, static, auto, register )の指定 ソースで表すと gist0473e607c28d6b6d97ff 仕事を…

鋼の錬金術師27巻

鋼の錬金術師 27巻 (デジタル版ガンガンコミックス)作者: 荒川弘出版社/メーカー: スクウェア・エニックス発売日: 2012/12/07メディア: Kindle版この商品を含むブログを見る 最後だけあって、名シーン多いなあ。

鋼の錬金術師26巻

鋼の錬金術師 26巻 (デジタル版ガンガンコミックス)作者: 荒川弘出版社/メーカー: スクウェア・エニックス発売日: 2012/12/07メディア: Kindle版この商品を含むブログを見る ホムンクルスって満足して死んでいった奴が多い気がした。 といっても、はっきりそ…

鋼の錬金術師25巻

鋼の錬金術師 25巻 (デジタル版ガンガンコミックス)作者: 荒川弘出版社/メーカー: スクウェア・エニックス発売日: 2012/11/16メディア: Kindle版この商品を含むブログを見る "ただ"闘う、それって難しいことなんだろうな。

鋼の錬金術師24巻

鋼の錬金術師 24巻 (デジタル版ガンガンコミックス)作者: 荒川弘出版社/メーカー: スクウェア・エニックス発売日: 2012/10/26メディア: Kindle版この商品を含むブログを見る 人から感情を取ったら、面白く無くなるのは同意。

鋼の錬金術師23巻

鋼の錬金術師 23巻 (デジタル版ガンガンコミックス)作者: 荒川弘出版社/メーカー: スクウェア・エニックス発売日: 2012/10/05メディア: Kindle版この商品を含むブログを見る 複数の選択肢を持つ事は大事。

鋼の錬金術師22巻

鋼の錬金術師 22巻 (デジタル版ガンガンコミックス)作者: 荒川弘出版社/メーカー: スクウェア・エニックス発売日: 2012/09/14メディア: Kindle版この商品を含むブログを見る 読み返したけど、あいかわらず面白い。

鋼の錬金術師21巻

鋼の錬金術師 21巻 (デジタル版ガンガンコミックス)作者: 荒川弘出版社/メーカー: スクウェア・エニックス発売日: 2012/08/24メディア: Kindle版この商品を含むブログを見る 欲に貴賤は無いっていう考え方が好き。 欲する心には強弱があるだけで、行動とは別…

鋼の錬金術師20巻

鋼の錬金術師 20巻 (デジタル版ガンガンコミックス)作者: 荒川弘出版社/メーカー: スクウェア・エニックス発売日: 2012/08/10メディア: Kindle版この商品を含むブログを見る グリードとリンの掛け合いの迫力がすごい。

鋼の錬金術師19巻

鋼の錬金術師 19巻 (デジタル版ガンガンコミックス)作者: 荒川弘出版社/メーカー: スクウェア・エニックス発売日: 2012/07/27メディア: Kindle版この商品を含むブログを見る 74話の最後はミスリードを誘いそう。

鋼の錬金術師18巻

鋼の錬金術師 18巻 (デジタル版ガンガンコミックス)作者: 荒川弘出版社/メーカー: スクウェア・エニックス発売日: 2012/07/13メディア: Kindle版この商品を含むブログを見る 久々。 「堪える」と 「許す」は 違う 深いですなあ。

鋼の錬金術師17巻

鋼の錬金術師 17巻 (デジタル版ガンガンコミックス)作者: 荒川弘出版社/メーカー: スクウェア・エニックス発売日: 2012/06/29メディア: Kindle版この商品を含むブログを見る ホムンクルス一通り出そろった。

鋼の錬金術師16巻

鋼の錬金術師 16巻 (デジタル版ガンガンコミックス)作者: 荒川弘出版社/メーカー: スクウェア・エニックス発売日: 2012/06/15メディア: Kindle版この商品を含むブログを見る マイルズ少佐のくだりでダイバーシティを連想しました。多様性も大事だし、その多…

鋼の錬金術師15巻

鋼の錬金術師 15巻 (デジタル版ガンガンコミックス)作者: 荒川弘出版社/メーカー: スクウェア・エニックス発売日: 2012/06/01メディア: Kindle版この商品を含むブログを見る やらない善より、やる偽善。考える事も大事だけど、行動する事の方が大事。もっと…

鋼の錬金術師14巻

[asin:B009UP2EFU:detail] 物語も折り返し