title: Parameter names of a function using a functional language such as F#
body: <p>I have read a book called <code>Clean code</code>. One of the strongest messages that I took from the book is that the code must be <strong>readable</strong>. I do not understand why functional languages such as F# do not include function parameter names into the intellisense or in the type defintion?</p>
  <p>Compare</p>
  <pre><code>val copy: string -&gt; string -&gt; unit
  </code></pre>
  <p>with</p>
  <pre><code>val copy: sourceFile:string -&gt; destinationFile:string -&gt; unit
  </code></pre>
  <p>What is the best practise in the functional world? Shall we prefer single parameter functions? This is what <code>Clean code</code> promotes. Or shall we use <em>records</em> for all functions of 2+ parameters?</p>
  <p>I know that one work-around is to use <code>static member</code> instead of <code>let</code> functions but this is not a functional approach, is it?</p>
  <p>EDIT:</p>
  <p>Just to give more information:</p>
  <ul>
  <li><a href="http://learnyouahaskell.com/types-and-typeclasses#believe-the-type" rel="nofollow noreferrer">Haskell</a> : <code>addThree :: Int -&gt; Int -&gt; Int -&gt; Int</code></li>
  <li><a href="http://www.southampton.ac.uk/%7Efangohr/software/ocamltutorial/lecture2.html" rel="nofollow noreferrer">OCaml</a>: <code>Unix.unlink: (string -&gt; unit)</code></li>
  </ul>
  <p>and surely others. They just do not show parameter names in the type definitions.</p>