title: Correct usage of mutable/immutable lists
body: <p>At the moment, Im trying to understand Functional Programming in Scala and I came across a problem I cannot figure out myself.</p>
  
  <p>Imagine the following situation: </p>
  
  <p>You have two classes: <em>Controller</em> and <em>Bot</em>. A <em>Bot</em> is an independent Actor which is initiated by a <em>Controller</em>, does some expensive operation and returns the result to the <em>Controller</em>. The purpose of the <em>Controller</em> is therefore easy to describe: Instantiate multiple objects of <em>Bot</em>, start them and receive the result. </p>
  
  <p>So far, so good; I can implement all this without using any mutable objects.</p>
  
  <p>But what do I do, if I have to store the result that a <em>Bot</em> returns, to use it later as input for another <em>Bot</em> (and later on means that <strong>I don't know when</strong> at compile time!)? </p>
  
  <p>Doing this with a mutable list or collection is fairly easy, but I add a lot of problems to my code (as we are dealing with concurrency here). </p>
  
  <p>Is it possible, following the FP paradigm, to solve this by using immutable objects (lists...) safely? </p>
  
  <p>BTW, im new to FP, so this question might sound stupid, but I cannot figure out how to solve this :) </p>