Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Env
- type Field =
- | Arg of int
- | Local of int
- type Env = private Env of int * Map<string, Field>
- let ofArgs args =
- let map =
- args
- |> List.mapi (fun i local -> (local, Arg i))
- |> Map.ofList
- Env(0, map)
- let addLocal name env =
- match env with
- | Env(next, map) ->
- let map' = Map.add name (Local next) map
- (Env(next + 1, map'), next)
- let tryGetField name env =
- match env with
- | Env(_, map) -> Map.tryFind name map
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement