fork(2) download
  1. module Duck_tales =
  2. struct
  3. class little_duck (name : string) =
  4. object
  5. method quack = name ^ " quacks"
  6. end
  7.  
  8. let huey = new little_duck "Huey"
  9. let dewey = new little_duck "Dewey"
  10. let louie = new little_duck "Louie"
  11. end
  12.  
  13. module Disney =
  14. struct
  15. let donald_duck =
  16. object
  17. method quack = "Donald Duck quacks"
  18. end
  19. end
  20.  
  21. module Ducks_client =
  22. struct
  23. type duck = <
  24. quack : string
  25. >
  26.  
  27. let sound (d : duck) = print_endline d#quack
  28. end
  29.  
  30. let _ =
  31. let ducks = [
  32. Duck_tales.huey ;
  33. Duck_tales.dewey ;
  34. Duck_tales.louie ;
  35. Disney.donald_duck
  36. ] in
  37. List.iter Ducks_client.sound ducks
  38.  
Success #stdin #stdout 0s 5572KB
stdin
Standard input is empty
stdout
Huey quacks
Dewey quacks
Louie quacks
Donald Duck quacks