ulidtko
15.05.2012 22:01
> Cool is type safe: procedures are guaranteed to be applied to data of the correct type.
While static typing imposes a strong discipline on programming in Cool, it guarantees that no runtime type errors can arise in the execution of Cool programs.
оророророро, вы только посмотрите на этого фанатика:
> static typing... guarantees that no runtime type errors can arise
!
Recommended by:
@Voker57
Бггг.
Хы, даже в упоротом типизацией OCaml когда-то даже runtime type error можно было довольно просто получить. (proved here: http://www.podval.org/~sds/ocaml-sucks.h...
Сейчас здесь не падает.
Кстати, главная причина разрушения его мокрых желаний — это Persistance, стадия десериализации объекта из внешнего канала.
Ну и раз я тут тихо сам с собой, то уже дополню срывпокровным пруфом, чтобы заметкой висело:
# let magic_copy a =
let s = Marshal.to_string a [Marshal.Closures]
in
Marshal.from_string s 0 ;;
val magic_copy: 'a → 'b = <fun>
# (magic_copy 3 : float) +. 3.1 ;; (* BRUTAL HALT *)