main.ml 758 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. let () = print_endline "Hello!";;
  2. (* «classes» *)
  3. class cat = object
  4. method speak = print_endline "meow"
  5. end
  6. class dog = object
  7. method speak = print_endline "woof"
  8. end
  9. (* «end» *)
  10. (* «uses» *)
  11. let hear_what_it_has_to_say obj =
  12. let () = obj#speak in ()
  13. (* «end» *)
  14. ;;
  15. (* «calling» *)
  16. let () = hear_what_it_has_to_say (new cat)
  17. (* prints "meow" *)
  18. let () = hear_what_it_has_to_say (new dog)
  19. (* prints "woof" *)
  20. (* «end» *)
  21. ;;
  22. (* «bigger-object» *)
  23. class cow = object
  24. method speak = print_endline "moo"
  25. method num_stomachs = 4
  26. end
  27. (* «end» *)
  28. ;;
  29. (* «call-cow» *)
  30. let () = hear_what_it_has_to_say (new cow)
  31. (* prints "moo" *)
  32. (* «end» *)
  33. ;;
  34. (* «speaker» *)
  35. let ecce_orator obj =
  36. let () = obj#speak in obj
  37. (* «end» *)
  38. ;;