ну у haskell'я вывод типов не настолько хорош, по причине (в общем случае) экспоненциальной сложности, хотя чаще всего можно свести задачу к квазилинейной
> ну у haskell'я вывод типов не настолько хорош, по причине (в общем случае) экспоненциальной сложности, хотя чаще всего можно свести задачу к квазилинейной
Интересно, откуда там экспоненциальная сложность, вроде обычный алгоритм унификации термов ? Единственное, на мой поверхностный взгляд, отличие - система классов, но она особо на алгоритм как я понимаю не влияет. Да и какая разница - экспоненциальный, линейный - все равно считается на этапе компиляции.
кто сказал что "haskell - нехорош"? было только про вывод(!) типов, но я не сказал что система типов у нехо плоха. /me наоборот старается не ленится и указывать типы.
>откуда там экспоненциальная сложность
подумайте еще
>Да и какая разница - экспоненциальный, линейный - все равно считается на этапе компиляции.
не всегда это оправданно, что плохого в явном указывании типов? (это же фактически автодокументация)
>откуда там экспоненциальная сложность
подумайте еще
>Да и какая разница - экспоненциальный, линейный - все равно считается на этапе компиляции.
не всегда это оправданно, что плохого в явном указывании типов? (это же фактически автодокументация)
я не эксперт в данной области, на ЛОРе есть куда более грамотные люди по этому вопросу.. имено вывод типов в ocaml реализован несколько лучше чем в haskell'е, но я думаю с этим утверждением можно поспорить
Ну и цитата с первой же ссылки в гугле: "This paper contains five results on the problem of inferring types. The first is that type inference over recursive types with unions and data constructors can be done in cubic time using a flow analysis". Хреново, конечно, но не экспоненциально ни разу :)
> это большое имхо: не чистая функциональность, отсутствие ленивости
Во-первых, нефик прекрываться имхами, это не на секунду не остановит нас, и мы закидаем тебя какашками как с имхом, так и без него, если ты скажешь глупость.
Во-вторых, сделать чистую функциональность и ленивость, а потом городить костыли и подпорки чтобы писать программы, отличные от учебных факториалов и королев? Спасибо конечно, но как нибудь в другой реальности.
Если бы он их сам выводил, он был бы искусственным интеллектом. А он всего лишь освобождает пользователя от необходимости писать типы везде. Не ведитесь на рекламный термин "type inference"!
> Во-первых, нефик прекрываться имхами, это не на секунду не остановит нас, и мы закидаем тебя какашками как с имхом, так и без него, если ты скажешь глупость.
Да, справедливость - она должна быть с зажатой в кулаке какашкой