Portability | portable |
---|---|
Stability | experimental |
Maintainer | github.com/justinethier |
husk scheme interpreter
A lightweight dialect of R5RS scheme.
This module contains Core functionality, primarily Scheme expression evaluation.
- eval :: Env -> LispVal -> LispVal -> IOThrowsError LispVal
- evalLisp :: Env -> LispVal -> IOThrowsError LispVal
- evalString :: Env -> String -> IO String
- evalAndPrint :: Env -> String -> IO ()
- primitiveBindings :: IO Env
Documentation
eval :: Env -> LispVal -> LispVal -> IOThrowsError LispValSource
Core eval function
Evaluate a scheme expression.
NOTE: This function does not include macro support and should not be called directly. Instead, use evalLisp
evalLisp :: Env -> LispVal -> IOThrowsError LispValSource
Evaluate lisp code that has already been loaded into haskell FUTURE: code example for this, via ghci and/or a custom Haskell program.
primitiveBindings :: IO EnvSource
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).