constants :: DFunctAr -> Maybe PyDopeBS
constants = go
where
- go ("-",1) = Just $ PDBS $ call "-"
+ go ("-",1) = Just $ PDBS $ call "-" []
go ("^",2) = Just $ PDBS $ infixOp "^"
go ("|",2) = Just $ PDBS $ infixOp "|"
go ("-",2) = Just $ PDBS $ infixOp "-"
go ("+",2) = Just $ PDBS $ infixOp "+"
go ("mod",2) = Just $ PDBS $ infixOp "%"
- go ("abs",1) = Just $ PDBS $ call "abs"
- go ("log",1) = Just $ PDBS $ call "log"
- go ("exp",1) = Just $ PDBS $ call "exp"
+ go ("abs",1) = Just $ PDBS $ call "abs" []
+ go ("log",1) = Just $ PDBS $ call "log" []
+ go ("exp",1) = Just $ PDBS $ call "exp" []
- go ("pycall", _) = Just $ PDBS $ call "pycall"
- go ("getattr", 2) = Just $ PDBS $ call "getattr"
+ go ("pycall", _) = Just $ PDBS $ call "pycall" []
+ go ("getattr", 2) = Just $ PDBS $ call "getattr" []
- go ("uniform", _) = Just $ PDBS $ call "uniform"
+ go ("uniform", _) = Just $ PDBS $ call "uniform" []
go ("<=",2) = Just $ PDBS $ infixOp "<="
go ("<",2) = Just $ PDBS $ infixOp "<"
go ("false",0) = Just $ PDBS $ nullary "False"
go ("null",0) = Just $ PDBS $ nullary "None"
- go ("!",1) = Just $ PDBS $ call "not"
- go ("not",1) = Just $ PDBS $ call "not"
+ go ("!",1) = Just $ PDBS $ call "not" []
+ go ("not",1) = Just $ PDBS $ call "not" []
+
+ go ("eval",1) = Just $ PDBS $ call "None;exec " []
+ go ("tuple",_) = Just $ PDBS $ call "" []
+
+ go ("nil",0) = Just $ PDBS $ call "build" ["nil/0"]
+ go ("cons",2) = Just $ PDBS $ call "build" ["cons/2"]
- go ("eval",1) = Just $ PDBS $ call "None;exec "
- go ("tuple",_) = Just $ PDBS $ call ""
go _ = Nothing
- nullary v _ _ = v
- call fn _ vis = fn <> (parens $ sepBy "," $ mpv vis)
+ nullary v _ _ = v
+ call fn as _ vis = fn <> (parens $ sepBy "," $ as ++ mpv vis)
------------------------------------------------------------------------}}}
-- DOpAMine Printout {{{
, (("pair" ,2),(SDQuote,[ADEval,ADEval]))
, (("true" ,0),(SDQuote,[]))
, (("false",0),(SDQuote,[]))
+ -- lists
+ , (("nil", 0),(SDQuote,[]))
+ , (("cons", 2),(SDQuote,[ADEval,ADEval]))
]
-- | Make the default surface syntax more functional. Here, all functors
dt = M.fromList [
(("=" ,2),(SDEval ,[ADQuote,ADQuote]))
, (("pair" ,2),(SDQuote,[ADEval ,ADEval ]))
+ -- booleans
, (("true" ,0),(SDQuote,[]))
, (("false",0),(SDQuote,[]))
+ -- lists
+ , (("nil", 0),(SDQuote,[]))
+ , (("cons", 2),(SDQuote,[ADEval,ADEval]))
]
------------------------------------------------------------------------}}}