OK I did this:<br><br><div style="margin-left: 40px;">import System.Random<br><br>walk :: Int -&gt; IO Int<br>walk i = randomRIO (0,1) &gt;&gt;= \r -&gt; return (i+r*2-1)<br><br>say :: Int -&gt; IO ()<br>say i = putStrLn $ show i<br>
<br>rep :: Int -&gt; a -&gt; (a -&gt; IO a) -&gt; (a -&gt; IO ()) -&gt; IO ()<br>rep n i w s <br>      | n&lt;=0 = return ()<br>      | otherwise = s i &gt;&gt; w i &gt;&gt;= \ii -&gt; rep (n-1) ii w s<br><br>main :: IO ()<br>
main = rep 10 50 walk say<br></div><br>Is that the easiest way?<br><br>Adrian.<br><br>