ブログ開始、及び、着手メモ

ブログ開始。プログラム関連のことや適当な与太話を書く予定。

現在の状況:

  • 「実践Rust入門」読みかけ。4章(全12章)まで読了
  • AtCoder登録。1/8に参加。
  • 1/10: pythonを某サイトで少し試す
  • 1/11: はてなブログ開始

実践Rust入門

今のところお勧め本ではない。

3章、非常に読みにくい。その時点で紹介していない語句を頻繁に用いている。

  • 3-1-1での手順通りに実行したところ、並列ソートでpanic発生。しばらく悩んだが Cargo.toml の rayon を 1.0 から 1.5 に更新して解決。
  • 原因詳細は未調査。筆者はmac(Linux)環境と思われる。

バイトニックソートというRustの理解には関係ないアルゴリズムを例にしているため、余計に没入を妨げている。

  • 時間量・空間量という概念しか知らなかったが、並列処理ではサイズ・段数といった概念を用いるらしい。
  • とはいえ現時点では計算量自体をあまり理解していない……
  • 全順序とやらの場合、comparator定義を一回のみにする方法はないのだろうか。mathか何かにa,bの引数を入れ替えた関数を作る関数はないのか?

4章、プリミティブ型。

  • 4-3-4: if let によるパターンマッチ。構文説明なし。(6章が基本構文で、if letは6-8-3) 1/21取り消し: 6-8-2 match式とパターン に説明あり
  • 4-3-4 unsafe と as_bytes_mut() で安全ではないスライスを取得。本書索引に unsafe なし。
    • unsafe ブロックを抜けた後で取得スライスを使っている! コーディングガイドラインを探してみたが、 外へ持ち出すことの言及は見つからず。
    • 領域外を操作すると当然 panic 発生。レビュー漏れになりかねないのでコンパイル指定か何かで持ち出し禁止にできないのか?

AtCoder

Rust学習が間に合わなかったが試しに参加。成績がひどくて笑える。

  • 借用(borrow)を理解していないため、コンパイルエラーで嵌る。
  • 実質安全でも禁止されるパターンがあり、緩めるか議論中らしい。(from stackoverflowのどこか)
  • A,Bは解けたがそこで時間切れ。
  • 感触としては A, B, C は問題なし。Dは普通に失敗。全探索では駄目なので計算量の事前予測と処理軽減を考慮する能力が必要。

python

1/10から挑戦開始。それまでは2,3回コードを読んだことがあるくらい。(rubyなら一度書いたことがあったか?)

  • 某サイトの登録では Rust が使えなかったので python に挑戦。
  • スキルチェックをケアレスミスで失敗したので、がっかりしてレベルアップまで夜更かし。

はてなブログ

1/11から備忘録として開始。

まとめてつけると思い出すのにかなり時間がかかるのでこまめに書かねば。

未着手

  • Rustで自分用ミニツール作成
  • ローカル git 環境作成 or github利用
  • 記事の内容に応じてqiita等に分割するか検討