I am trying to work through Write Yourself a Scheme in 48 Hours. But I am already running into problems on page 6.
The code provided is:
module Main where
import System.Environment
import Text.ParserCombinators.Parsec hiding ( spaces )
main :: IO ()
main = do
args <− getArgs
putStrLn (readExpr ( args !! 0))
symbol :: Parser Char
symbol = oneOf "!$%&|*+-/:<=?>@^_~#"
readExpr :: String −> String
readExpr input = case parse symbol "lisp" input of
Left err −> "No match: " ++ show err
Right val −> "Found value"
when I run the following command
ghc -o parser simpleparser1.hs
the file is called simpleparser1.hs
. I get the following error message. Which I find very strange considering that the code is from a classic book.
[1 of 1] Compiling Main ( simpleparser1.hs, simpleparser1.o )
simpleparser1.hs:15:5: error:
Parse error in pattern: Left err −> "No match: " ++ show err
|
15 | Left err −> "No match: " ++ show err
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
I did look at this , this and this post on stackoverflow. I am a completely unfamiliar with Haskell so any help would be welcome.