haskell-jp / beginners #21 at 2022-06-21 22:02:21 +0900

こんばんは。 AtCoder で固定長配列を使いたいですが、何かお勧めがあれば教えてください。 (ただ当面リストを使うつもりです)
- Array: ヒープに配置される気がします
- Data.Vector.Fixed: LTS 16.11 の vector にはありませんでした
- タプル: 使えそうですが、使い勝手は悪そうです
- repa: いつか確認したいです
AtCoder、ライブラリー、何でもは使えなくて、一覧どこでしたっけ……
あ、すみません! こちらに載っています ()。記事 AtCoder:Haskellの実行環境の再現 も参考にさせていただきました。
一次元ならData.Vector系、二次元以上ならArrayで良いのではないでしょうか。型レベルで長さを管理することにこだわりがあるのでしょうか?
リストより Vector の方がいいですね! 気にしすぎかもですが、なるべくスタックにデータを置きたいと思います。
Haskellを使う以上スタックに配列を置くのは諦めてください(そもそもスタックに配列を置けるのはC/C++ぐらいではないでしょうか?)。Haskellで効率を気にするなら正格評価とか値のボックス化とかを気にするべきです。
分かりました。スッキリしました、ありがとうございます :raised_hands:
こういう適した本「Haskellで戦う競技プログラミング 第2版」がありますね:slightly_smiling_face:
https://booth.pm/ja/items/1577541
実は持っています :sparkles: 参考に乗っていた High performance Haskell? も買いました
Vector (Int 2つ) を作る ~~時に~~ 処理でダブルポインタを避けたかったのですが、タプルとリストで 20ms しか変わらなかったです