Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 0.56 KB | None | 0 0
  1. let rec findTransition env = function
  2.     |(endstate, edge)::rest ->
  3.         match edge with
  4.         |Ass(var, aexpr) ->if (aexpr.Valid env) then (endstate, Map.add var (aexpr.Eval env) env) else findTransition env rest
  5.         |Skip -> (endstate, env)
  6.         |Conditional(bexpr) -> if bexpr.Eval env then (endstate, env) else findTransition env rest
  7.     | [] -> failwith("Unable to fire any transition")
  8.  
  9. let rec execute s g env = Map.find s g |> findTransition env |> fun (s':string,env') -> if s'.Contains "◀" then "terminated",env' else execute s g env'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement