>リストを最後までたどる必要があるため
それは何故?
遅延評価するなら、take 3 が必要な3つだけ要素を生成すればいい、
ってわけじゃないの?

それとも遅延評価させるには何か指令が必要だったり、
または Haskell は遅延評価をサポートしてないの?