Lazy evaluation is what drew me into Haskell a few years ago, when someone showed me how you could use it to beautifully read a file as if it were in-memory, but done entirely as a stream. I thought that was amazing and I was sold.
https://www.reddit.com/r/haskell/comments/1e8k3k/three_examp...