On Dec 11, 2006, at 18:48 , Steve Downey wrote:
> the typical good solution to this problem in c or c++ is to use a
> string reverse function on the entire buffer, then re-reverse each
> word. this leaves multiple spaces correctly embedded in the larger
> string.
> that approach, of course, won't work in haskell, since it relies on
> updates. but if the challenge includes transforming "one two three
> four " into " four three two one", how could this be done?
Off the top of my head, the C++ one translates to:
*Main> concatMap reverse . groupBy (\l r -> (l == ' ') == (r == '
')) . reverse $ "one two three four "
" four three two one"
There are almost certainly more idiomatic ways to do it, but I'm
still learning.
--
brandon s. allbery [linux,solaris,freebsd,perl] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university KF8NH