From: Samir Benmendil Date: Sat, 13 Jan 2018 23:40:49 +0000 (+0000) Subject: Add LispVal data type which can hold any Lisp value X-Git-Url: https://git.rmz.io/my-scheme.git/commitdiff_plain/b388d53e751db6d925a39c06dc871c125799b8e5 Add LispVal data type which can hold any Lisp value LispVal is an algebraic type which is able to hold any of the types given. Not sure what the type of `DottedList` is meant to be. --- diff --git a/app/Main.hs b/app/Main.hs index 8520891..c64fd18 100644 --- a/app/Main.hs +++ b/app/Main.hs @@ -2,6 +2,13 @@ module Main where import Text.ParserCombinators.Parsec hiding (spaces) import System.Environment +data LispVal = Atom String + | List [LispVal] + | DottedList [LispVal] LispVal + | Number Integer + | String String + | Bool Bool + symbol :: Parser Char symbol = oneOf "!#$%&|*+-/:<=>?@^_~"