title: Is it possible to write any function without explicit parameters in Haskell?
body: <p>For example I have a table <code>tab = [(1,11), (2,22), (3,33)]</code> and two functions. The first one will take as parameter the table and an Integer and will replace the Integer with the value from the table. Let's assume the Integer will be on the table. </p>
  
  <pre><code>replace :: [(Int, Int)] -&gt; Int -&gt; Int
  replace t i = snd $ head [x | x &lt;- t, fst x == i]
  </code></pre>
  
  <p>The second function will replace all the occurrences of <code>1, 2, 3</code> from a list with the values from the table.</p>
  
  <pre><code>replaceAll :: [(Int, Int)] -&gt; [Int] -&gt; [Int]
  </code></pre>
  
  <p>First I got:</p>
  
  <pre><code>replaceAll = \tab lst -&gt; foldl(\acc x -&gt; acc ++ [replace tab x]) [] lst
  </code></pre>
  
  <p>then,</p>
  
  <pre><code>replaceAll = \tab -&gt; foldl(\acc x -&gt; acc ++ [replace tab x]) []
  </code></pre>
  
  <p>Is there a way to write this without the lambda function?
  EDIT: Not necessary using the fold function.</p>