metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-07-02 01:18 pm

Функциональный апартеид

http://udpn.livejournal.com/78084.html?style=mine
Обычно говорят, что нормальный порядок редукции нужен для того, чтобы bottom в аргументе не превращался в bottom в результате всегда, когда это возможно. Само по себе это никому не нужно. Дело именно в отложенном вычислении аргументов. Чтобы определить управляющие конструкции в языке с аппл. порядком редукции, нужно это делать явно, и их можно ввести только конечное число на этапе разработки языка. С нормальным порядком мы имеем возможность определять новые конструкции в любом количестве.

Всех, кто ничего не понял - отправить в индию и бангладеш, купаться в ганге и поклонятся коровам.

[identity profile] falcrum.livejournal.com 2012-07-02 10:28 am (UTC)(link)
Хм-м, все, кто не пользуют функциональное программирование - индусы? Однако... :)

[identity profile] nicka-startcev.livejournal.com 2012-07-02 10:36 am (UTC)(link)
это фашизм!
Я, честный труженик села с полным ртом полными руками навоза, протестую!

[identity profile] molnij.livejournal.com 2012-07-02 11:11 am (UTC)(link)
Вы бы хоть уточняли что людей определенной профессии, а то многие могут посмотреть с недоумением

[identity profile] si14.livejournal.com 2012-07-02 11:13 am (UTC)(link)
Спорно. Не во всех функциональных языках нормальный порядок редукции (скорее даже в большинстве аппликативный). Scala, Clojure, Erlang, Ocaml — не функциональные языки?

[identity profile] justy-tylor.livejournal.com 2012-07-02 11:18 am (UTC)(link)
Ой, какая древняя зефировщина... :) Управляющие конструкции при ленивости вводятся лишь до определённого предела. Очередной комбинатор !@!@#$% - легко. Что-то уровня do notation - никак. Но, как гласят легенды, истинному программисту на Хаскеле и не должно хотеться лучшего.

[identity profile] nivanych.livejournal.com 2012-07-02 11:23 am (UTC)(link)
С ленивостью одна большая проблема — это полный пофигизм по отношению к ресурсной семантике.
И даже в современных языках, все эти проблемы решаются ad hoc.
Вроде как, имеешь опыт работы с ленивостью — должен сообразить.
А не сообразил, и ВНЕЗАПНО, где-то-там у тебя прорвало — сам виноват.
Рассуждения о ресурсной семантике (не без помощи линейной логики!) нормализации в ламбда-исчислении приводят к оптимальной редукции, о которой немало писал [livejournal.com profile] codedot. Хоть он всё делает для бестиповой лямбды, но и такое изучить небесполезно.

[identity profile] aamonster.livejournal.com 2012-07-02 11:25 am (UTC)(link)
А что, это не одно и то же?

[identity profile] jakobz.livejournal.com 2012-07-02 11:43 am (UTC)(link)
Обычно говорят что нормальный порядок нужен для <общее определение>, но на деле оно для <частный случай>

[identity profile] jakobz.livejournal.com 2012-07-02 11:45 am (UTC)(link)
Это, кстати, в SICP разбирается в первой главе, в примере где типа "Маша-дурняша хочет захуярить if, почему она соснет".

[identity profile] tzirechnoy.livejournal.com 2012-07-02 12:38 pm (UTC)(link)
Я, как человек привыкшый к тиклю и лиспу, подозреваю, что коровники плачут всё-таки по кому-то другому.

[identity profile] m e (from livejournal.com) 2012-07-02 01:36 pm (UTC)(link)
хорошо, а куда отправлять тех, кто высказывание понял, но не понял, что оно неверно?

в скале например можно создать неограниченное количество управляющих конструкций, несмотря на аппликативынй порядок редукции

[identity profile] measles.livejournal.com 2012-07-02 03:18 pm (UTC)(link)
Калі не можаш простымі словамі растлумачыць што ты робіш — не рабі гэта. © А. Эйнштэйн.

:) Прапануеце яго эксгуміраваць і павезці купацца ў Гангу?

[identity profile] inhate.livejournal.com 2012-07-02 06:40 pm (UTC)(link)
а с не-программистами что делать будем?

[identity profile] tzirechnoy.livejournal.com 2012-07-03 08:48 am (UTC)(link)
Да, попробую расшыфровать своё возмущение: у меня есть сильное подозрение, что слова "язык с аппл. порядком редукции" не имеют не то что чёткого -- дажэ вменяемого определения, и применение термина "порядок редукцыи" по отношэнию к языкам можэт иметь смысл только после какого-то частного (одного из многих) отображэния языка (включая семантику) на лямбда-исчисление.