-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUnpack.hs
More file actions
35 lines (26 loc) · 960 Bytes
/
Copy pathUnpack.hs
File metadata and controls
35 lines (26 loc) · 960 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
module Unpack where
import Expr
unpackFloat :: Expr -> Double
unpackFloat (LispFloat val) = val
unpackFloat _ = error "Expected Float type"
unpackInteger :: Expr -> Integer
unpackInteger (LispInteger val) = val
unpackInteger _ = error "Expected Integer type"
unpackBool :: Expr -> Bool
unpackBool (LispBoolean val) = val
unpackBool _ = error "Expected Boolean type"
unpackChar :: Expr -> Char
unpackChar (LispChar val) = val
unpackChar _ = error "Expected Character type"
unpackFunc :: Expr -> Context -> [Expr] -> (Context, Expr)
unpackFunc (LispFunction val) = val
unpackFunc _ = error "Expected Function type"
unpackSymbol :: Expr -> String
unpackSymbol (LispSymbol val) = val
unpackSymbol _ = error "Expected Symbol type"
unpackDataList :: Expr -> [Expr]
unpackDataList (LispDataList val) = val
unpackDataList _ = error "Expected ConsList type"
unpackList :: Expr -> [Expr]
unpackList (LispList val) = val
unpackList _ = error "Exepcted List type"