let は遅延評価で参照されるタイミングで評価されます。
逆にいうと参照されなければ評価されないので、 context の
階層の上の方で複数の context に共通の値を定義して置けば
使われない所では副作用が無いし、階層の下の方で再定義
することも出来るのでとても便利です。
また、遅延評価されない let! というのも有ります。