Learning Lazy Evaluation from http://d.hatena.ne.jp/teramonagi/20120322/1332428916