We covered Sections 5 and 6 of Winstanley's article. Hudak's tutorial covers the topic relatively well in Chapter 7 also.
Here is the example we saw in class. The program repeatedly reads lines from the user and displays their reverse.
bellow wolleb tips spit
#!/usr/local/bin/runhugs
module Main where
readLine :: IO String
readLine = do c <- getChar
if c == '\n'
then return ""
else do rest <- readLine
return (c : rest)
main :: IO ()
main = do line <- readLine
putStrLn (reverse line)
main
You can run it either within Hugs, or you can execute it directly from the command line:
unix% chmod a+x rev.hs this makes the file executable unix% ./rev.hs