metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-02-24 10:44 am

Типы и типы

Очевидно ли, почему flatten и (partial apply concat) в Clojure могут выдать разные результаты? После хаскеля кложурный flatten, работающий на все уровни "вглубь", выглядит непривычно.

По ходу, статическая типизация делает невозможными некоторые типы программ, возможные при динамической.
Соответственно, наиболее заебатая статическая типизация, с какими-нибудь адскими зависимыми типами, должна делать невозможными еще большее количество программ.
А самая правильная типизация - это при которой множество допустимых программ пустое.

[identity profile] blackyblack.livejournal.com 2012-02-26 07:09 pm (UTC)(link)
code:load_file я делал. Но, насколько я помню, если в модуле рекурсивный вызов без обработки сообщений, то обновить такую функцию нельзя.

[identity profile] kurilka.livejournal.com 2012-02-26 07:20 pm (UTC)(link)
code:load_file - это не сообщение, касательно обработки сообщений - это не так, хотя с практической т.зр. иметь рекурсивную функцию в процессе (модуле), которая не читает сообщения, довольно бессмысленно. Касательно "нельзя" есть лишь ограничение на то, что вызов должен иметь вид module:function, т.е. вызов без указания модуля обращается "в ту же версию".