- let rec aux = function
- | [] -> []
- | he::".."::tl -> aux tl
- | he::"."::tl -> aux (he::tl)
- | he::tl -> he :: aux tl
+ let rec aux acc = function
+ | [] -> acc
+ | he::"."::tl -> aux acc (he::tl)
+ | he::".."::tl when he <> ".." -> aux [] (acc @ tl)
+ | he::tl -> aux (acc@[he]) tl