Guest User

Untitled

a guest
Jul 20th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
OCaml 0.45 KB | None | 0 0
  1. fun findTypeInList (ts : T.t list) (l : string list) (f : string) =
  2.     let val fieldTypes = ListPair.zipEq(l, ts)
  3.         val fieldTypeOpt = List.find(fn (f',_) => f = f') fieldTypes
  4.     in
  5.       #2 (Option.valOf fieldTypeOpt)
  6.     end
  7.  
  8. fun traversePath (t : T.t) (path : string list)
  9.     case path of
  10.       [] => t
  11.     | x::xs => let val T.$(TO.Struct l, [ts]) = T.out t
  12.                in traversePath (findTypeInList ts l x) xs
  13.                end
Add Comment
Please, Sign In to add comment