]> git.rmz.io Git - my-scheme.git/commitdiff
Use do to parse numbers
authorSamir Benmendil <me@rmz.io>
Sun, 14 Jan 2018 16:26:47 +0000 (16:26 +0000)
committerSamir Benmendil <me@rmz.io>
Sun, 14 Jan 2018 16:26:47 +0000 (16:26 +0000)
This is not necessarily better than the `liftM` method (probably isn't).

app/Main.hs

index 58017c55305aa90095ba786e78ed009df4209040..87b94aa3650c31697794c5e2c6c17706d88219ef 100644 (file)
@@ -34,7 +34,10 @@ parseAtom = do
                 _    -> Atom atom
 
 parseNumber :: Parser LispVal
-parseNumber = liftM (Number . read) $ many1 digit
+parseNumber = do
+    ds <- many1 digit
+    let a = read ds
+    return $ Number a
 
 parseExpr :: Parser LispVal
 parseExpr = parseString