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

Date: 2015-07-10 02:00 pm (UTC)
From: [identity profile] dr-cha0s.livejournal.com
Когда нужно обрабатывать гигабайты, редко берутся ленивые списки. Есть conduits и десяток альтернатив с константной памятью и финализацией.

Date: 2015-07-10 03:48 pm (UTC)
From: [identity profile] justy-tylor.livejournal.com
Это не решение, а лишь замена одной стандартной структуры данных на некие альтернативы. Ибо в своём коде у программиста на хаскеле остаются всё те же два печальных варианта.

Date: 2015-07-10 04:40 pm (UTC)
From: [identity profile] dr-cha0s.livejournal.com
Решение чего? Ленивости по умолчанию? Так это фича Хаскела.

А выедание памяти санками случается когда обрабатывается поток данных, собственно как с этим бороться всем давно известно.

Date: 2015-07-10 04:52 pm (UTC)
From: [identity profile] justy-tylor.livejournal.com
Именно так, плохой дизайн подобных "фич" резко снижает эффективность инструмента.

Date: 2015-07-10 05:54 pm (UTC)
From: [identity profile] dr-cha0s.livejournal.com
Ок, доказывай на прмерах. И хочется услышать про правильный дизайн ленивости по умолчанию.

Date: 2015-07-10 06:15 pm (UTC)
From: [identity profile] justy-tylor.livejournal.com
Такие вещи нельзя делать по умолчанию. Только явно. Пример более внятного дизайна: Scala.

Date: 2015-07-10 06:35 pm (UTC)
From: [identity profile] dr-cha0s.livejournal.com
Ну ахуеть, ты эксперт. Вот сказал - низя и неебёт. Муллы свинину есть запрещают, так що менi сало не їсти?
Edited Date: 2015-07-10 06:36 pm (UTC)

Date: 2015-07-10 06:41 pm (UTC)
From: [identity profile] justy-tylor.livejournal.com
Как говорится, ИМХО (имею мнение, хрен оспоришь).

Date: 2015-07-11 11:49 pm (UTC)
From: [identity profile] lomeo.livejournal.com
В Scala задолбаешься делать лениво.

Date: 2015-07-12 12:08 am (UTC)
From: [identity profile] justy-tylor.livejournal.com
С хаскельными привычками - возможно. Но на порядок человечнее, чем в Хаскеле, где задолбаешься сделать энергично.

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

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

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

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

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

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

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

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

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

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

Date: 2015-07-14 08:03 am (UTC)
From: [identity profile] lomeo.livejournal.com
Человечнее это как?

В Haskell сделать энергично можно сверху, не влезая в потроха библиотеки. Сделать же ленивой работу с ленивой структурой в энергичной библиотеке практически невозможно.

Date: 2015-07-14 12:27 pm (UTC)
From: [identity profile] justy-tylor.livejournal.com
Уже отвечал thesz. Для любых вычислений приходится писать свои библиотеки. Усложнять жизнь всем ради поклонников ленивости нет смысла.
Edited Date: 2015-07-14 12:27 pm (UTC)

Date: 2015-07-15 07:25 am (UTC)
From: [identity profile] lomeo.livejournal.com
Ну, конечно, это неправда. Вот только в этом треде привели пример форсирования свёртки снаружи без влезания в потроха. Так что как минимум не "для любых". Из моего опыта — в подавляющем большинстве случаев этого достаточно.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 7th, 2025 08:19 pm
Powered by Dreamwidth Studios