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 MetaVariable
s.
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])