見出し画像

Retro-gaming and so on

RE: プログラミング学習日記 2023/01/23〜

星田さんの記事に対するコメント。

うん、これはだな。
次のようにする。


まぁ、画像を用意しなかったんでpicと言うシンボルにしたわけだけど。
まず、

  1. 破壊的変更を避けたければ、大域変数*item-table*make-hash単独で作るんじゃなく(それをやっちゃえばhash-set!で破壊的変更をせざるを得なくなる)、データ全体を作るようにしてしまう。
  2. make-hashは連想リストを受け取り、ハッシュテーブルに変換してくれる関数だ。
  3. 従って、make-hashの引数自体を連想リストにするように工夫すれば良い。
と言う事。
こうしておけば、


hash-refがキチンと使える事が分かるだろう(※1)(※2)。

以上!

※1: ハッシュテーブルは検索性能を第一に考えてるので、要素の並びはグチャグチャ、つまり順不同になる事に気をつけよう。
順序が重要な場合は、ハッシュテーブルの使用は適さない(と言うか随時データ変換が必要になる場合がある)。

※2: 最初にやったのが上手く行かなかった理由は、生成したデータを良く見れば分かると思う。


これは「ハッシュテーブル」じゃなくって「ハッシュテーブルのリスト」になっている。
つまり、検索しようとしても大枠がリストだから弾かれる。
また、各要素が全部「独立した」ハッシュテーブルになってるんで、実はハッシュテーブルの用を成していない。各ハッシュテーブルが一つのキーと値を独自に持ってて、互いに関係がないから、だ。
  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「RE: プログラミング学習日記」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事