| License | MIT | 
|---|---|
| Safe Haskell | None | 
| Language | Haskell2010 | 
Language.Egison.Data
Description
This module contains definitions for Egison internal data.
Synopsis
- data EgisonValue- = World
- | Char Char
- | String Text
- | Bool Bool
- | ScalarData ScalarData
- | TensorData (Tensor EgisonValue)
- | Float Double
- | InductiveData String [EgisonValue]
- | Tuple [EgisonValue]
- | Collection (Seq EgisonValue)
- | IntHash (HashMap Integer EgisonValue)
- | CharHash (HashMap Char EgisonValue)
- | StrHash (HashMap Text EgisonValue)
- | UserMatcher Env [IPatternDef]
- | Func (Maybe Var) Env [Var] IExpr
- | CFunc Env String IExpr
- | MemoizedFunc (IORef (HashMap [Integer] WHNFData)) Env [String] IExpr
- | PatternFunc Env [String] IPattern
- | PrimitiveFunc PrimitiveFunc
- | LazyPrimitiveFunc LazyPrimitiveFunc
- | IOFunc (EvalM WHNFData)
- | Port Handle
- | RefBox (IORef EgisonValue)
- | Something
- | Undefined
 
- type Matcher = EgisonValue
- type PrimitiveFunc = [EgisonValue] -> EvalM EgisonValue
- type LazyPrimitiveFunc = [WHNFData] -> EvalM WHNFData
- data EgisonHashKey
- class EgisonData a where- toEgison :: a -> EgisonValue
- fromEgison :: EgisonValue -> EvalM a
 
- data Tensor a
- type Shape = [Integer]
- symbolScalarData :: String -> String -> EgisonValue
- symbolScalarData' :: String -> ScalarData
- getSymId :: EgisonValue -> String
- getSymName :: EgisonValue -> String
- mathExprToEgison :: ScalarData -> EgisonValue
- egisonToScalarData :: EgisonValue -> EvalM ScalarData
- extractScalar :: EgisonValue -> EvalM ScalarData
- data Object
- type ObjectRef = IORef Object
- data WHNFData
- data Inner
- data Env = Env [HashMap Var ObjectRef] (Maybe (String, [Index (Maybe ScalarData)]))
- type Binding = (Var, ObjectRef)
- nullEnv :: Env
- extendEnv :: Env -> [Binding] -> Env
- refVar :: Env -> Var -> Maybe ObjectRef
- data EgisonError- = UnboundVariable String CallStack
- | TypeMismatch String WHNFData CallStack
- | ArgumentsNumPrimitive String Int Int CallStack
- | TupleLength Int Int CallStack
- | InconsistentTensorShape CallStack
- | InconsistentTensorIndex CallStack
- | TensorIndexOutOfBounds Integer Integer CallStack
- | NotImplemented String CallStack
- | Assertion String CallStack
- | Parser String
- | EgisonBug String CallStack
- | MatchFailure CallStack
- | PrimitiveMatchFailure CallStack
- | Default String
 
- throwErrorWithTrace :: (CallStack -> EgisonError) -> EvalM a
- type EvalM = EvalT RuntimeM
- fromEvalM :: EgisonOpts -> EvalM a -> IO (Either EgisonError a)
- fromEvalT :: EvalM a -> RuntimeM (Either EgisonError a)
Egison values
data EgisonValue Source #
Constructors
Instances
| Eq EgisonValue Source # | |
| Defined in Language.Egison.Data | |
| Show EgisonValue Source # | |
| Defined in Language.Egison.Data Methods showsPrec :: Int -> EgisonValue -> ShowS # show :: EgisonValue -> String # showList :: [EgisonValue] -> ShowS # | |
| ToMathExpr EgisonValue Source # | |
| Defined in Language.Egison.PrettyMath.AST Methods toMathExpr :: EgisonValue -> MathExpr Source # | |
| TensorComponent EgisonValue EgisonValue Source # | |
| Defined in Language.Egison.Tensor Methods fromTensor :: Tensor EgisonValue -> EvalM EgisonValue Source # toTensor :: EgisonValue -> EvalM (Tensor EgisonValue) Source # | |
| Show (Index EgisonValue) Source # | |
| Defined in Language.Egison.Data | |
| EgisonData (IORef EgisonValue) Source # | |
| Defined in Language.Egison.Data Methods toEgison :: IORef EgisonValue -> EgisonValue Source # fromEgison :: EgisonValue -> EvalM (IORef EgisonValue) Source # | |
type Matcher = EgisonValue Source #
type PrimitiveFunc = [EgisonValue] -> EvalM EgisonValue Source #
class EgisonData a where Source #
Instances
Instances
| Show a => Show (Tensor a) Source # | |
| ToMathExpr a => ToMathExpr (Tensor a) Source # | |
| Defined in Language.Egison.PrettyMath.AST Methods toMathExpr :: Tensor a -> MathExpr Source # | |
Scalar
symbolScalarData :: String -> String -> EgisonValue Source #
symbolScalarData' :: String -> ScalarData Source #
getSymId :: EgisonValue -> String Source #
getSymName :: EgisonValue -> String Source #
Internal data
Constructors
Environment
Errors
data EgisonError Source #
Constructors
| UnboundVariable String CallStack | |
| TypeMismatch String WHNFData CallStack | |
| ArgumentsNumPrimitive String Int Int CallStack | |
| TupleLength Int Int CallStack | |
| InconsistentTensorShape CallStack | |
| InconsistentTensorIndex CallStack | |
| TensorIndexOutOfBounds Integer Integer CallStack | |
| NotImplemented String CallStack | |
| Assertion String CallStack | |
| Parser String | |
| EgisonBug String CallStack | |
| MatchFailure CallStack | |
| PrimitiveMatchFailure CallStack | |
| Default String | 
Instances
| Show EgisonError Source # | |
| Defined in Language.Egison.Data Methods showsPrec :: Int -> EgisonError -> ShowS # show :: EgisonError -> String # showList :: [EgisonError] -> ShowS # | |
| Exception EgisonError Source # | |
| Defined in Language.Egison.Data Methods toException :: EgisonError -> SomeException # fromException :: SomeException -> Maybe EgisonError # displayException :: EgisonError -> String # | |
| MonadRuntime EvalM Source # | |
throwErrorWithTrace :: (CallStack -> EgisonError) -> EvalM a Source #
Monads
fromEvalM :: EgisonOpts -> EvalM a -> IO (Either EgisonError a) Source #