Haskell入門

α-β刈りと遅延評価の関係が知りたくて、勉強がてらコードをいじりました。
ミニマックスでは独立だった同一階層の探索評価を独立ではなく候補値を渡しながら再帰的にしていくのがα-β刈り。遅延評価とは関係ありませんでした。でもなー、α-β刈りの本質は遅延評価と通じるものがあるんだけどなー。評価に必要とされる値を計算するのが遅延評価で、値が評価に影響しないとわかった時点で評価をやめるのがα-β刈り。遅延評価をなにかしら拡張して、ミニマックス法を実装しただけで、コンパイラがα-β刈りしてくれるようになったらいいのに。これはきっとできるな。
並列化とリソースの数に依ってはα-β刈りよりナイーブなミニマックス法の方が速いだろうから、この問題は将来的にはプログラマではなくコンパイラが(ランタイムシステムが)解決すべき問題である。えっへん。(意味なくいばってみました。)
遅延評価を考えだしたら、自分がどこまでちゃんとわかっているのか確認したくなって、例のごとく入門ノートを書き始めました。
できるだけモナドには近づかない予定です(笑)。