title: Meaning of backslash in Haskell code?
body: <p>So I have this haskell code, and I understand half of it, but I can't get my head around this <code>\x -&gt;</code> here:</p>
  
  <pre><code>testDB :: Catalogue
  testDB = fromList [
   ("0265090316581", ("The Macannihav'nmor Highland Single Malt", "75ml bottle")),
   ("0903900739533", ("Bagpipes of Glory", "6-CD Box")),
   ("9780201342758", ("Thompson - \"Haskell: The Craft of Functional Programming\"", "Book")),
   ("0042400212509", ("Universal deep-frying pan", "pc"))
   ]
  
  
  -- Exercise 1
  
  longestProductLen :: [(Barcode, Item)] -&gt; Int
  longestProductLen = maximum . map (\(x, y) -&gt; length $ fst y) 
  
  formatLine :: Int -&gt; (Barcode, Item) -&gt; String
  formatLine k (x, (y1, y2)) = x ++ "..." ++ y1 ++ (take  (k - length y1) (repeat '.')) ++ "..." ++ y2
  
  showCatalogue :: Catalogue -&gt; String
  showCatalogue c = foldr (++) "" $ map (\x -&gt; (formatLine (longestProductLen (toList testDB)) x) ++ "\n") $ toList c
  </code></pre>
  
  <p>I understand that <code>longestProductLen</code> returns and integer meaning the longest title in <code>testDB</code> and then it uses this integer to match <code>k</code> in <code>formatLine</code>, but I can't understnad how it matches <code>(Bardcode, Item)</code> and I guess it has something to do with <code>\x -&gt;</code>, if it does can you please explain how it does that?</p>
  
  <p>Thank you!</p>