Portability | portable |
---|---|
Stability | experimental |
Maintainer | github.com/justinethier |
Safe Haskell | None |
This module contains Core functionality, primarily Scheme expression evaluation.
- evalLisp :: Env -> LispVal -> IOThrowsError LispVal
- evalLisp' :: Env -> LispVal -> IO (ThrowsError LispVal)
- evalString :: Env -> String -> IO String
- evalAndPrint :: Env -> String -> IO ()
- apply :: LispVal -> LispVal -> [LispVal] -> IOThrowsError LispVal
- continueEval :: Env -> LispVal -> LispVal -> IOThrowsError LispVal
- primitiveBindings :: IO Env
- version :: String
- registerExtensions :: Env -> (FilePath -> IO FilePath) -> IO ()
- escapeBackslashes :: String -> String
- showBanner :: IO ()
- substr :: (LispVal, LispVal, LispVal) -> IOThrowsError LispVal
- updateVector :: LispVal -> LispVal -> LispVal -> IOThrowsError LispVal
- updateByteVector :: LispVal -> LispVal -> LispVal -> IOThrowsError LispVal
Scheme code evaluation
evalLisp :: Env -> LispVal -> IOThrowsError LispValSource
Evaluate a lisp data structure and return a value for use by husk
evalAndPrint :: Env -> String -> IO ()Source
Evaluate a string and print results to console
:: LispVal | Current continuation |
-> LispVal | Function or continuation to execute |
-> [LispVal] | Arguments |
-> IOThrowsError LispVal | Final value of computation |
Call into a Scheme function
:: Env | Current environment |
-> LispVal | Current continuation |
-> LispVal | Value of previous computation |
-> IOThrowsError LispVal | Final value of computation |
A support function for eval; eval calls into this function instead of returning values directly. continueEval then uses the continuation argument to manage program control flow.
Core data
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).
Utility functions
registerExtensions :: Env -> (FilePath -> IO FilePath) -> IO ()Source
Register optional SRFI extensions
escapeBackslashes :: String -> StringSource
A utility function to escape backslashes in the given string
showBanner :: IO ()Source
A utility function to display the husk console banner
substr :: (LispVal, LispVal, LispVal) -> IOThrowsError LispValSource
A helper function for the special form (string-set!)
updateVector :: LispVal -> LispVal -> LispVal -> IOThrowsError LispValSource
A helper function for the special form (vector-set!)
updateByteVector :: LispVal -> LispVal -> LispVal -> IOThrowsError LispValSource
A helper function for the special form (bytevector-u8-set!)