title: Stream vs Views vs Iterators
body: <p>What are the differences among Streams, Views (SeqView), and Iterators in scala? This is my understanding:</p>
  
  <ul>
  <li>They are all lazy lists.</li>
  <li>Streams cache the values.</li>
  <li>Iterators can only be used once? You can't go back to the beginning and evaluate the value again?</li>
  <li>View's values are not cached but you can evaluate them again and again?</li>
  </ul>
  
  <p>So if I want to save heap space, should I use iterators (if I won't traverse the list again) or views? Thanks. </p>