>>475
メモ化っていうのは実行時のテクニック。
実行時に、「あー この関数でこの引数の計算はもうやったわー はいはい、再計算しなくても、覚えてますよー」ってのがメモ化

共通部分式除去ってのはコンパイル時のテクニック。
コンパイル時に「あれ? この式のこの部分とあの部分って同じじゃね? それなら、一回の計算で済むんで、自動的にletだかwhereだか挟んどきますわー」ってのが共通部分式除去。

全然ちがう。