Hi Steve,<br><br><span class="gmail_quote">On 12/11/06, <b class="gmail_sendername">Steve Downey</b> &lt;<a href="mailto:sdowney@gmail.com">sdowney@gmail.com</a>&gt; wrote:</span><br>&gt; transforming &quot;one two&nbsp;&nbsp;three four&nbsp;&nbsp;&nbsp;&nbsp;&quot; into &quot;&nbsp;&nbsp;&nbsp;&nbsp;four&nbsp;&nbsp; three&nbsp;&nbsp;two one&quot;,&nbsp;&nbsp;how could this be done?
<br><br>This is a good problem for <a href="http://www.cs.uu.nl/%7Edaan/download/parsec/parsec.html">Parsec</a>:<br><br>import Text.ParserCombinators.Parsec<br><br>reverseWords = concat . reverse . split<br>&nbsp;&nbsp; where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; split = fromRight . parse wordsSpaces &quot;&quot;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fromRight (Right s) = s<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wordsSpaces = many (many1 space &lt;|&gt; many1 alphaNum)<br><br>-Greg<br>