| Safe Haskell | Safe-Inferred |
|---|---|
| Language | GHC2021 |
MCSP.Data.Meta
Description
Additional variables and parameters.
Synopsis
- data VariableMap
- lookup :: Typeable v => VariableMap -> Maybe v
- class Typeable v => MetaInputVariable v where
- class Typeable v => MetaOutputVariable v where
- data Meta a
- getOrDefine :: MetaInputVariable v => v -> Meta v
- setOutputVar :: MetaOutputVariable v => v -> Meta ()
- inspect :: MetaOutputVariable v => Meta (Maybe v)
- (<::) :: MetaInputVariable v => Meta a -> v -> Meta a
- evalMeta :: Meta a -> a
- runMeta :: Meta a -> (a, VariableMap)
Collection of variables
data VariableMap Source #
A polymorphic storage of MetaVariables.
Instances
| Show VariableMap Source # | |
Defined in MCSP.Data.Meta Methods showsPrec :: Int -> VariableMap -> ShowS # show :: VariableMap -> String # showList :: [VariableMap] -> ShowS # | |
Data Class
class Typeable v => MetaInputVariable v where Source #
Represents a additional variable that can be used as input of a computation.
These variables are set and resolved dynamically inside the Meta monad.
Instances
| MetaInputVariable UseSingletons Source # | |
Defined in MCSP.Heuristics.Combine Methods | |
| MetaInputVariable PSOCombine Source # | |
Defined in MCSP.Heuristics.PSOBased Methods getVar :: Meta PSOCombine Source # | |
| MetaInputVariable PSOInitialDistribution Source # | |
Defined in MCSP.Heuristics.PSOBased Methods | |
| MetaInputVariable PSOIterations Source # | |
Defined in MCSP.Heuristics.PSOBased Methods | |
| MetaInputVariable PSOParticles Source # | |
Defined in MCSP.Heuristics.PSOBased Methods | |
| MetaInputVariable PSOPure Source # | |
| MetaInputVariable PSOSeed Source # | |
| MetaInputVariable PSOUpdaterWeigths Source # | |
Defined in MCSP.Heuristics.PSOBased Methods | |
class Typeable v => MetaOutputVariable v where Source #
Represents a additional variable that can be set as output of a computation.
These variables are set and resolved dynamically inside the Meta monad.
Minimal complete definition
Nothing
Methods
setVar :: v -> Meta () Source #
Updates the output variable, possibly modifying the environment.
Instances
| MetaOutputVariable PSOFirstBestIter Source # | |
Defined in MCSP.Heuristics.PSOBased Methods setVar :: PSOFirstBestIter -> Meta () Source # | |
Monadic operations
A monad that represents operation with meta-variables.
The meta-variables may be used as input, output or both.
getOrDefine :: MetaInputVariable v => v -> Meta v Source #
Get the value of an input meta-variable or set a default one.
>>>import Prelude (String)>>>instance MetaInputVariable String where getVar = getOrDefine ""
>>>runMeta (getOrDefine "default")("default",VariableMap [[Char]])
>>>runMeta (getOrDefine "default" <:: "pre-set")("pre-set",VariableMap [[Char]])
setOutputVar :: MetaOutputVariable v => v -> Meta () Source #
Set the value of meta-variable for the given type, without any additional side-effect.
>>>import Prelude (Int)>>>instance MetaOutputVariable Int where>>>setVar = setOutputVar
>>>runMeta (setOutputVar @Int 12)((),VariableMap [Int])
inspect :: MetaOutputVariable v => Meta (Maybe v) Source #
Get a meta-variable for the expected type.
>>>import Prelude (Int)>>>instance MetaOutputVariable Int
>>>runMeta (inspect @Int)(Nothing,VariableMap [])
>>>runMeta (setVar (12 :: Int) >> inspect @Int)(Just 12,VariableMap [Int])
(<::) :: MetaInputVariable v => Meta a -> v -> Meta a Source #
Set an input meta-variable for the given type.
>>>import Prelude (Int)>>>instance MetaInputVariable Int where getVar = getOrDefine 0
>>>runMeta (getVar @Int <:: (12 :: Int))(12,VariableMap [Int])