Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. type FileSys = Element list
  2. and Element =
  3. | File of string*string
  4. | Dir of string * FileSys;;
  5.  
  6.  
  7. let d1 = Dir("d1",[File("a1","java");
  8. Dir("d2", [File("a2","fsx");
  9. Dir("d3", [File("a3","fs")])]);
  10. File("a4","fsx");
  11. Dir("d3", [File("a5","pdf")])]);;
  12.  
  13. // 1)
  14. let rec namesFileSys = function
  15. | [] -> []
  16. | e::es -> (namesElement e) @ (namesFileSys es)
  17. and namesElement = function
  18. | File(s,ss) -> [s+"."+ss]
  19. | Dir(s,fs) -> s :: (namesFileSys fs);;
  20.  
  21. // 2)
  22. let rec searchFileSys = function
  23. | [] -> []
  24. | e::es -> (namesElement e) @ (namesFileSys es)
  25. and searchElement = function
  26. | File(s,ss) ->
  27. | Dir(s,fs) -> s :: (searchFileSys fs)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement