Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let rec proc l =
- match l with
- | Dir(x,y)::[] -> Dir(x,y)
- | x::Dir(name,n)::xs -> proc (Dir(name, x::n)::xs)
- | _ -> raise Invalid_path;;
- let rec addl z1 p z2 it = match p, z1, it with
- | [], Dir(name, y), _ -> (Dir(name, z2::y)) @ (proc (List.rev it))
- | x::xs, Dir(name, y::ys), z -> if x = getName y then addl xs y z2 (Dir(name, y::ys))::z else addl (Dir(name, ys)) p z2 z
- | _, _, _ -> raise Invalid_path;;
- let add z1 p z2 = addl z1 p z2 [];;
Add Comment
Please, Sign In to add comment