You might start with looking into span.

span :: (a -> Bool) -> [a] -> ([a], [a])


For example try these,

span ('a'==) "abcd"
span ('a'==) "aaabcd"
span ('c'==) "abcd"
span ('c'/=) "abcd"
span ('c'/=) "abcdcdcd"



On 16 March 2010 17:08, Roger Whittaker <roger@disruptive.org.uk> wrote:
I found some exam papers linked from this page:
http://www.cs.chalmers.se/Cs/Grundutb/Kurser/d1pt/d1pta/external.html

And I have been trying some questions from them.

I'm currently baffled by question 2(b) on this one:
http://www.cs.chalmers.se/Cs/Grundutb/Kurser/d1pt/d1pta/tenta2000-04.ps

 A word is a sequence of alphabetic characters, which you can recognise
 using the standard function

 isAlpha :: Char -> Bool

 Using span, define a function words :: String -> [String] which
 finds a list of the words occurring in a string. For example,

 words "Now is the winter of our discontent!"
   == ["Now","is","the","winter","of","our","discontent"]

 words "2+3" == []

 words "1 by 1" == ["by"]

Can anyone give me a clue how to start?




--
========================
Roger Whittaker
roger@disruptive.org.uk
http://disruptive.org.uk
========================
_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners



--
Ozgur Akgun