遅延評価だのメモ化だのの説明はたくさん出てくるんですが、なんだかあんまり実感を持てなかったので、もうちょっと深くまで覗いてみました。 三行 (コンテキストのイメージ的には)describeはクラス、itはそのインスタンス(のコンテキスト) letは定義されたスコープのクラス(describe)に対して変数名のdefine_methodをしている(正確ではない) 参照時は初回はletに渡したブロック(から作られたメソッド)を評価した値をitごとに持つインスタンス変数のハッシュに登録、二回目以降はそのハッシュからkeyでfetchする、という動作 解説 RSpecの実装については大変参考になるエントリがあるので、letあたりのところまではここを参照していただければと思います。関連するところだけ簡単に説明すると、各describeはExampleGroupというクラスの子クラスとして生成され、入