Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let println expr : string =
- let rec print expr =
- match expr with
- | Application(expr1, expr2) ->
- // Function application.
- print expr1 + " " + print expr2
- | SpecificCall <@@ (+) @@> (_, _, exprList) ->
- // Matches a call to (+). Must appear before Call pattern.
- print exprList.Head + " + " + print exprList.Tail.Head
- | Int32(n) -> n.ToString()
- | Lambda(param, body) ->
- // Lambda expression.
- "fun (%s:%s) -> " + param.Name + (param.Type.ToString()) + print body
- | Let(var, expr1, expr2) ->
- let letPart = var.IsMutable |> function
- // Let binding.
- | true -> "let mutable %s = " + var.Name
- | _ -> "let %s = " + var.Name
- letPart + print expr1 + " in " + print expr2
- | PropertyGet(_, propOrValInfo, _) ->
- propOrValInfo.Name
- | String(str) ->
- str
- | Value(value, typ) ->(value.ToString())
- | Var(var) ->
- var.Name
- | _ -> (expr.ToString())
- print expr
Add Comment
Please, Sign In to add comment