色々わからないことが溜まってきたのでずっとKindleの片隅にあったRustの本を読み始めた。界隈ではbicycle bookとして有名らしい。

実践Rust入門[言語仕様から開発手法まで]

正確にいうと昔ちょっと読んだことはあったのだが、途中で飽きて積読になっていた。途中で読んだ内容もほぼ忘れていたので完全に頭から読み直し。

もともと分かりやすい本のようなのだが、色々わからないことを溜め込んでから読むとスイスイ頭に入ってくる。

わかったこと

これで昨日のコード

chart.draw_series(
        Histogram::vertical(&chart)
            .style(RED.mix(0.5).filled())
            .data(data.iter().map(|x: &u32| (*x, 1))),
    )?;

でわからなかったところがちょっとわかった。

|x: &u32| (*x, 1)

の部分はクロージャ(Pythonだとlambda式?)だが&u32とか(*x, 1)とかがよくわからなかった。これはおそらくxがu32型のポインタでそれをでリファレンスして中身を取り出しているということなんだろう。しかし、ヒストグラムにこれを渡すというのがちょっとわからない。

ちなみにevcxr_jupyterdata.iter().map(|x: &u32| (*x, 1))を実行してみたらMap { iter: Iter([0, 1, 1, 1, 4, 2, 5, 7, 8, 6, 4, 2, 1, 8, 3, 3, 3, 4, 4, 3, 3, 3]) }

いうのが帰ってきた。よくわからない・・・

今日はちょっと疲れているので短めだがここまで