This module contains Core functionality, primarily Scheme expression evaluation.
- evalLisp :: Env -> LispVal -> IOThrowsError LispVal
- evalString :: Env -> String -> IO String
- evalAndPrint :: Env -> String -> IO ()
- primitiveBindings :: IO Env
- apply :: LispVal -> LispVal -> [LispVal] -> IOThrowsError LispVal
- continueEval :: Env -> LispVal -> LispVal -> IOThrowsError LispVal
- showBanner :: IO ()
- version :: String
Evaluate lisp code that has already been loaded into haskell
Environment containing the primitive forms that are built into the Scheme language. Note that this only includes forms that are implemented in Haskell; derived forms implemented in Scheme (such as let, list, etc) are available in the standard library which must be pulled into the environment using (load).
continueEval is a support function for eval. - - Transformed eval section into CPS by calling into this instead of returning from eval. - This function uses the cont argument to determine whether to keep going or to finally - return a result. -