<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">fmap seems oddly named because no "mapping" takes place, except in the fourth example, where the map is "passed in." Just sayin'.<br><br>Michael<br><br>1)<br>Prelude Control.Monad Control.Applicative&gt; fmap (++ "abc") getLine<br>xyz<br>"xyzabc"<br><br>2)<br>Prelude Control.Monad Control.Applicative Data.Char Data.String&gt; fmap (splitAt 3) getLine<br>qwertyuio<br>("qwe","rtyuio")<br><br>3)<br>Prelude Control.Monad Control.Applicative Data.Char&gt; fmap toUpper getLine<br><br>&lt;interactive&gt;:1:13:<br>&nbsp;&nbsp;&nbsp; Couldn't match expected type `Char' against inferred type `[Char]'<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Expected type: IO Char<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Inferred type: IO String<br>&nbsp;&nbsp;&nbsp; In the second argument of `fmap', namely `getLine'<br>&nbsp;&nbsp;&nbsp; In the expression: fmap toUpper getLine<br><br>4)<br>Prelude
 Control.Monad Control.Applicative Data.Char Data.String&gt; fmap (map toUpper) getLine<br>qwertyuio<br>"QWERTYUIO"<br><br><br><br></td></tr></table><br>