Rust でライブコーディングをした

rust.connpass.com

これの LT 枠でライブコーディングをした。

動機

Rust は比較的難しい言語だと思う(ふわっと書いてふわっと動くタイプの言語ではない)ので、聴衆が自分でもできそうと思えるようなパフォーマンスをしたかった。

問題選定

Rust の標準ライブラリの公式ドキュメントにはダイクストラの実装が載っているので、これをコピペするだけで動くのを見せたいと考えた。 AOJ にはダイクストラをそのまま実装するための問題が用意されているが、それではあまりに味気ないので、本質的にはダイクストラをやるだけだが表面的には面白そうに見える問題を頑張って探した。

C - 身体バランス

(探しても見つからなかったので、結局自分の印象に残っていた問題を思い出した)(僕が初めてダイクストラ法と出会った問題)

練習

本番前に練習をし、いくつかの問題点を見つけた。

  • この問題では全ての頂点への最短距離を求める必要があるが、公式ドキュメントのものは終点までの最短経路のみを求めるので、微修正する必要がある。
  • AtCoder のジャッジの Rust は 1.15.1 なので、そのままコピペすると then_withコンパイルエラーになる。
  • Edge が Clone を継承する必要がある。
    • さり気なく [#derive(Clone)] を足す。
  • 標準入力が面倒。
  • グラフが連結でないケースがテストに入っている。

本番

標準入力を受け取るのもコピペでやっていくことにした

ちゃんとコンパイルエラーになるところも見せた

コーナーケースで不正解になるところも見せた

これはあまり伝わっていなかったかもしれない。

感想

自己顕示欲の満たされ方がすごい。