遅延評価を使ってこうしたらどうだ?
https://ideone.com/u9awUW