Imaginantia

思ったことを書きます

Entries from 2017-09-27 to 1 day

hashとunion

hash :: (Hashable a) => a -> Hash 「hashが衝突しない」という仮定の下では、この関数の存在は「Hashは全てのHashableな型たちから成るDisjoint Unionを部分に含む」という意味になるのではないだろうか?そうすると色々と面白いことが考えられる。 実質的…

遅延評価のあるべき姿

遅延評価は非常に興味深いシステムではある。普段通り書いた手続き型のプログラムにおける無駄をシステマチックに省くことができる。 が、本当にそんなにも無駄なコードを書くだろうか? いろんなデータを計算する関数の戻り値の一部しか使わないとして、そ…

structとlinear type

ある大きなデータ構造 T を考える。T のメンバとなっている変数 a の値についての操作を考えたい。 「a を書き換える」ということをしたい場合、純粋世界では必ず構造 T を再構築せざるを得ない。 これでは明らかに負荷が入るため、そこで「他で使われていな…

解説

今までサークル内wikiの/user/phi16/memo/nazoという残念な項目に小さく書きつらねていたような事柄を、blogで書くようにしようと思います 既にあるものは気が向いたら移します