metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2015-07-10 02:01 pm

Хаскель и среднее арифметическое

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

[identity profile] thesz.livejournal.com 2015-07-12 10:55 am (UTC)(link)
Я редко так выражаюсь, но тем не менее: хера там! Ибо задолбало читать одно и тоже, особенно от людей, которые должны были бы знать лучше.

Я как-то писал пост про внедрение ленивых и энергичных вычислений в, соответственно, энергичные и ленивые языки.

В ленивом языке всё остаётся как есть, только в некоторых местах надо поставить $! или !.

В энергичном языке надо заново переписать всю необходимую библиотеку, поскольку чуть упустив энергичность (оставив энергичный map, например, по любому параметру), мы теряем лень всюду.

Или, зайдя с теоретической стороны: если значение может быть вычислено в call-by-value, оно может быть вычислено и в call-by-need, обратное неверно.

[identity profile] justy-tylor.livejournal.com 2015-07-12 11:38 am (UTC)(link)
Под любые вычисления придётся писать библиотеку. И под энергичные, и под ленивые, и под разные "облачные" реализации. Можно даже пользоваться единым полиморфным map, обёртывающим библиотечные.

Таким образом, те, кому нужна именно хаскелеподобная ленивость, могут себя ею обеспечить. Не беспокоя остальных лишней когнитивной нагрузкой ("думать санками") и дополнительными расходами на отладку "недовычисленности".

[identity profile] thesz.livejournal.com 2015-07-12 04:33 pm (UTC)(link)
Мой основной аргумент остаётся в силе: хера там!

Я тут пописал для всякого разного, включая GPU. Включая сюда мой недавний опыт C# программиста, могу сказать, что ваши позиция не вяжется с моим опытом.

Перейдя с Хаскеля на C# мне приходится "думать в классах и объектах". Какая пакость!