LINUX.ORG.RU

и ?) может он сам и приложения пишет ?

phasma ★☆
()

Лоровцы не знают про Хиндли-Милнера. Я в шоке. =)

AiLr ★★
()

Конечно, для этого у него депеденс с libastral :)

Burbaka ★★
()
Ответ на: комментарий от AiLr

>Кстати Epigram глянь, там типизация поинтереснее ;)

Нет, я так быстро не могу. Мне надо разобраться, освоиться, пощупать-повертеть-покрутить...

seiken ★★★★★
() автор топика

> Оказывется Ocaml сам выводит типы данных. Я в шоке.

Тю. Типы и я могу выводить. Пусть он попробует программы на джаве пописать.

Legioner ★★★★★
()
Ответ на: комментарий от rexadecimal

ну у haskell'я вывод типов не настолько хорош, по причине (в общем случае) экспоненциальной сложности, хотя чаще всего можно свести задачу к квазилинейной

ps: ocaml - ф топку.

UrbanSerj
()
Ответ на: комментарий от UrbanSerj

А и там и там разве не одна система вывода типов?
З.Ы. Я пока нуб и только начинаю Haskell, в Ocaml даже не погружался.

rexadecimal
()
Ответ на: комментарий от UrbanSerj

> ну у haskell'я вывод типов не настолько хорош, по причине (в общем случае) экспоненциальной сложности, хотя чаще всего можно свести задачу к квазилинейной

Интересно, откуда там экспоненциальная сложность, вроде обычный алгоритм унификации термов ? Единственное, на мой поверхностный взгляд, отличие - система классов, но она особо на алгоритм как я понимаю не влияет. Да и какая разница - экспоненциальный, линейный - все равно считается на этапе компиляции.

Burbaka ★★
()
Ответ на: комментарий от UrbanSerj

haskell - нехорош, ocaml - в топку. что тогда остается? разве есть другие более или менее распространенные языки с таким выводом типов?

bik ★★
()
Ответ на: комментарий от bik

кто сказал что "haskell - нехорош"? было только про вывод(!) типов, но я не сказал что система типов у нехо плоха. /me наоборот старается не ленится и указывать типы.

UrbanSerj
()
Ответ на: комментарий от Burbaka

>откуда там экспоненциальная сложность подумайте еще >Да и какая разница - экспоненциальный, линейный - все равно считается на этапе компиляции. не всегда это оправданно, что плохого в явном указывании типов? (это же фактически автодокументация)

UrbanSerj
()
Ответ на: комментарий от Burbaka

>откуда там экспоненциальная сложность
подумайте еще
>Да и какая разница - экспоненциальный, линейный - все равно считается на этапе компиляции.
не всегда это оправданно, что плохого в явном указывании типов? (это же фактически автодокументация)

UrbanSerj
()
Ответ на: комментарий от UrbanSerj

я именно вывод типов и имел в виду - есть другие языки, лучше поддерживающие вывод типов? просто интересно..

bik ★★
()
Ответ на: комментарий от bik

я не эксперт в данной области, на ЛОРе есть куда более грамотные люди по этому вопросу.. имено вывод типов в ocaml реализован несколько лучше чем в haskell'е, но я думаю с этим утверждением можно поспорить

UrbanSerj
()
Ответ на: комментарий от UrbanSerj

> подумайте еще

Объясни, будь любезен. Лучше всего пример языковых конструкций когда получается експоненциальная сложность вывода ?

> не всегда это оправданно, что плохого в явном указывании типов? (это же фактически автодокументация)

Да ничего плохого, просто не всегда это хочется делать.

Burbaka ★★
()
Ответ на: комментарий от Burbaka

>Объясни, будь любезен. Лучше всего пример языковых конструкций когда получается експоненциальная сложность вывода ?

лучше вот этого никто не объяснит: ttic.uchicago.edu/~dmcallester/equiv.ps

&& google://Hindley-Milner Let-Polymorphism

UrbanSerj
()
Ответ на: комментарий от UrbanSerj

Ну и цитата с первой же ссылки в гугле: "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". Хреново, конечно, но не экспоненциально ни разу :)

tailgunner ★★★★★
()
Ответ на: комментарий от UrbanSerj

> это большое имхо: не чистая функциональность, отсутствие ленивости

Во-первых, нефик прекрываться имхами, это не на секунду не остановит нас, и мы закидаем тебя какашками как с имхом, так и без него, если ты скажешь глупость.

Во-вторых, сделать чистую функциональность и ленивость, а потом городить костыли и подпорки чтобы писать программы, отличные от учебных факториалов и королев? Спасибо конечно, но как нибудь в другой реальности.

// :(

anonymous
()

Если бы он их сам выводил, он был бы искусственным интеллектом. А он всего лишь освобождает пользователя от необходимости писать типы везде. Не ведитесь на рекламный термин "type inference"!

anonymous
()
Ответ на: комментарий от bik

На практике более чем достаточна пропагация типов как в C#3.0.

А Хиндли-Милнер приводит к нечитабельным сообщениям об ошибках.

anonymous
()
Ответ на: комментарий от anonymous

> Во-первых, нефик прекрываться имхами, это не на секунду не остановит нас, и мы закидаем тебя какашками как с имхом, так и без него, если ты скажешь глупость.

Да, справедливость - она должна быть с зажатой в кулаке какашкой

Burbaka ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.