title: what is the difference in the codes with ramda.js?
body: <p>I am trying to learning fp recently and try to use ramda.js into my project but I met some problems.</p>
  
  <p>The goal of my code is I want to add <code>result</code> prop with some initial values into each element of the <code>list</code> array, but it didn't work as expected.</p>
  
  <p>Here is my code: </p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>var list = [{name: 'foo'}, {name: 'bar'}, {name: 'baz'}]
  var list1 = R.clone(list)
  
  var getResultList = R.times(R.identity)
  
  // what's the difference between them ??
  // it worked as expected if I wrap assoc fn into arrow function and transfer it to fn
  var mapAssocResult= R.map(e=&gt; R.assoc('result', getResultList(2), e))
  // it didn't work as expected if I just transfer it as param of map fn
  var mapAssocResult1= R.map(R.assoc('result', getResultList(2)))
  
  list = mapAssocResult(list)
  list1 = mapAssocResult1(list1)
  
  list[0].result === list[1].result //false
  list1[0].result === list1[1].result // true
  // it seems that all result props point to the same array reference, but why?</code></pre>
  </div>
  </div>
  </p>
  
  <p>is there something I need to notice using Ramda.js ?</p>
  
  <p>Maybe my thinking in using Ramda.js is totally wrong, so is there more reasonable way to achieve my goal in Ramda.js ?</p>
  
  <p>thanks a lot.</p>