diff options
author | Erin van der Veen | 2018-07-05 19:44:12 +0200 |
---|---|---|
committer | Erin van der Veen | 2018-07-05 19:44:12 +0200 |
commit | f946712b836a72221756f67840e8d815706e09c2 (patch) | |
tree | 480dd9934960c5d8fb052f6d5682172f625cd086 /Assignment2 | |
parent | Add + var to every transition (diff) |
Uniqueness :(
Diffstat (limited to 'Assignment2')
-rw-r--r-- | Assignment2/src/DTMC.icl | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/Assignment2/src/DTMC.icl b/Assignment2/src/DTMC.icl index d3071c1..3abb0ac 100644 --- a/Assignment2/src/DTMC.icl +++ b/Assignment2/src/DTMC.icl @@ -168,15 +168,17 @@ addVars :: *DTMC -> *DTMC addVars dtmc = {DTMC | nr_states = dtmc.nr_states, states = addVarsS 0 dtmc.nr_states dtmc.states} where addVarsS :: !Int !Int !*{Maybe State} -> *{Maybe State} - addVarsS i m ss - | i >= m = ss - | otherwise = addVarsS (i + 1) m {ss & [i]=addVarsT 0 m ss.[i]} - - addVarsT :: Int Int (Maybe State) -> (Maybe State) - addVarsT _ _ Nothing = Nothing - addVarsT i m (Just s) - | i >= m = Just s - | otherwise = (addVarsT (i + 1) m (Just {s & transitions = alter (addVar i s.state_id) i s.transitions})) + addVarsS fi m ss + | fi >= m = ss + | otherwise = addVarsS (fi + 1) m (addVarsT fi 0 m ss) + + addVarsT :: !Int !Int !Int !*{Maybe State} -> *{Maybe State} + addVarsT fi ti m ss + | ti >= m = ss + # (s, ss) = ss![fi] + = case s of + Nothing -> ss + (Just s) -> addVarsT fi (ti + 1) m {ss & [fi] = Just {s & transitions = alter (addVar fi ti) fi s.transitions}} addVar :: Int Int (Maybe String) -> Maybe String addVar _ _ Nothing = Nothing |