ocaml - Полиморфная печать и тип Потеря

Есть серия функций, таких как print_int, print_endline и printf в ocaml. Я не могу сделать что-то вроде:

let n = 10 in
print n;; (* And I haven't to change `print` in case type of `n` changed *)

Это полиморфно, как в Java, C #, Python и других. Вместо этого у нас есть C-вроде с типом, явно определенным программистом. Поэтому я думаю, что OCAML теряет информацию о типах во время компиляции и не имеет его во время выполнения, верно? И это причина, по которой нам также нужны файлы MLI?

Редактировать: Я устал, чтобы написать функцию, как * print_listi *, * print_list_tupple2i * и так далее. Как я могу сделать это лучше?

10
задан demi 16 September 2011 в 09:15
поделиться