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?ds=inline;hp=429ac1845f1b93f54bca8511a4efbf8cbcbb9bf3 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 "!#$%&|*+-/:<=>?@^_~"