Copyright | Satoshi Egi |
---|---|
License | MIT |
Safe Haskell | None |
Language | Haskell98 |
This module provides functions to evaluate various objects.
Synopsis
- collectDefs :: EgisonOpts -> [EgisonTopExpr] -> [(Var, EgisonExpr)] -> [EgisonTopExpr] -> EgisonM ([(Var, EgisonExpr)], [EgisonTopExpr])
- evalTopExpr' :: EgisonOpts -> StateT [(Var, EgisonExpr)] EgisonM Env -> EgisonTopExpr -> EgisonM (Maybe String, StateT [(Var, EgisonExpr)] EgisonM Env)
- evalExpr :: Env -> EgisonExpr -> EgisonM WHNFData
- evalExprDeep :: Env -> EgisonExpr -> EgisonM EgisonValue
- evalRef :: ObjectRef -> EgisonM WHNFData
- evalRefDeep :: ObjectRef -> EgisonM EgisonValue
- evalWHNF :: WHNFData -> EgisonM EgisonValue
- applyFunc :: Env -> WHNFData -> WHNFData -> EgisonM WHNFData
- refArray :: WHNFData -> [EgisonValue] -> EgisonM WHNFData
- arrayBounds :: WHNFData -> EgisonM WHNFData
- recursiveBind :: Env -> [(Var, EgisonExpr)] -> EgisonM Env
- patternMatch :: PMMode -> Env -> EgisonPattern -> WHNFData -> Matcher -> EgisonM (MList EgisonM Match)
- isEmptyCollection :: WHNFData -> EgisonM Bool
- unconsCollection :: WHNFData -> MatchM (ObjectRef, ObjectRef)
- unsnocCollection :: WHNFData -> MatchM (ObjectRef, ObjectRef)
- tupleToList :: WHNFData -> EgisonM [EgisonValue]
- collectionToList :: WHNFData -> EgisonM [EgisonValue]
Egison code evaluation
collectDefs :: EgisonOpts -> [EgisonTopExpr] -> [(Var, EgisonExpr)] -> [EgisonTopExpr] -> EgisonM ([(Var, EgisonExpr)], [EgisonTopExpr]) Source #
evalTopExpr' :: EgisonOpts -> StateT [(Var, EgisonExpr)] EgisonM Env -> EgisonTopExpr -> EgisonM (Maybe String, StateT [(Var, EgisonExpr)] EgisonM Env) Source #
evalExprDeep :: Env -> EgisonExpr -> EgisonM EgisonValue Source #
Array
Environment
recursiveBind :: Env -> [(Var, EgisonExpr)] -> EgisonM Env Source #
Pattern matching
patternMatch :: PMMode -> Env -> EgisonPattern -> WHNFData -> Matcher -> EgisonM (MList EgisonM Match) Source #
Collection
Tuple, Collection
tupleToList :: WHNFData -> EgisonM [EgisonValue] Source #
collectionToList :: WHNFData -> EgisonM [EgisonValue] Source #