diff options
Diffstat (limited to 'paper/While/Simple.icl')
-rw-r--r-- | paper/While/Simple.icl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/paper/While/Simple.icl b/paper/While/Simple.icl index 84ffce7..4c226c9 100644 --- a/paper/While/Simple.icl +++ b/paper/While/Simple.icl @@ -16,12 +16,12 @@ where instance run Stm where run (Ass v e) st - = eval e st >>= \r -> pure (\w -> if (w==v) (pure r) (st w)) + = pure (\w -> if (w==v) (eval e st) (st w)) run (If b s1 s2) st = eval b st >>= \r -> run (if r s1 s2) st run w=:(While b s) st = eval b st >>= \r -> if r - (run s st >>= \st` -> run w st`) + (run s st >>= run w) (pure st) run Skip st = pure st |