title: Map function in Haskell
body: <p>As far as I understand map in Haskell takes a function and a List and applies that function to every element in that list before creating a new list with the function applied to each member.</p>
  
  <p>Trying it out, this works fine with really simple functions like <code>(+5)</code> so it works fine if I type:</p>
  
  <pre><code>map (+7) [2,8,9,3]
  </code></pre>
  
  <p>I get:</p>
  
  <pre><code>[9,15,16,10]
  </code></pre>
  
  <p>However this doesn't work with functions that I have created. Say I have made a function <code>shiftLetter</code> whose type declaration is:</p>
  
  <pre><code>shiftLetter :: Char -&gt; Int -&gt; Char
  </code></pre>
  
  <p>(with Int shifting how far along the letter returned is)</p>
  
  <p>If I make a new function to do it with more than one letter and type:</p>
  
  <pre><code>shiftLetters :: String -&gt; Int -&gt; Char
  shiftLetters letters shift = map shiftLetters "AKHLKHN"
  </code></pre>
  
  <p>I get errors, why is this?</p>