@haskellru

Страница 819 из 1551
Dmitry
07.02.2018
16:22:42
кто именно?

kana
07.02.2018
16:22:43
линзы это просто сахар
так речь и не про линзы и не про геттеры/сеттеры из рекордов

Dmitry
07.02.2018
16:22:44
я уже потерялся

Denis
07.02.2018
16:22:58
да все

Google
Dmitry
07.02.2018
16:23:10
т.е мы поговорили за фримонады, и я понял, что можно не писать инстанс монады, если хочпется написать примерно столько же по объему чего-то иного

и еще получить ряд ограничений за это.

Александр
07.02.2018
16:23:23
в total у нас будет геттинг этого коэфицента из api
Если какой-то коэффициент есть в сервисе, и его можно достать методом сервиса, то это не "геттер". Это просто данные, которые вы получаете в сценарии. Да, в некотором роде, сценарии для invoice - императивны. Но только в некотором. И это необязательное правило для eDSL.

Denis
07.02.2018
16:24:00
самая мякотка началась, когда тут за солид начали топить

Dmitry
07.02.2018
16:24:22
мы поговорили за IoC и пришли к тому, что это фабрика, которая возвращает разные реализации в зависимости от состояния жирного xml-ного конфига, и при некотором напряге это делается и в нашем уютненьком.

Александр
07.02.2018
16:24:23
Денис, в чем проблема с SOLID?

Dmitry
07.02.2018
16:24:50
хотя это бывает довольно непросто и код выгядит довольно неестественно при этом, да.

Denis
07.02.2018
16:25:23
нет SOLID, нет проблем

Dmitry
07.02.2018
16:26:02
особенно весело выглядит O и ADT, например

Александр
07.02.2018
16:26:07
Нет, ребята, вы так и не поняли. Вы оцениваете с позиции ООП. Вместо того чтобы понять, что есть универсальные принципы дизайна поддерживаемого, тестируемого, чистого кода. Не важно в какой парадигме.

Dmitry
07.02.2018
16:26:23
мы сразу приезжаем к тайпклассам, тайпфэмили и вот этому вот всему

Denis
07.02.2018
16:26:28
Проблема в том что про эту дурь для запугивания java-юниоров вообще думать не надо при написании функционального кода. В любых количествах.

Dmitry
07.02.2018
16:26:50
UndeicidableInstances ftw

Google
Александр
07.02.2018
16:26:54
Ну о чем тут можно говорить. Я пошел работать.

Денис, не буду оспаривать ваше право на любую точку зрения, пусть даже неверную

Denis
07.02.2018
16:27:44
передайте вашему работателю, что может отблагорить меня биткоинами, за возвращение сотрудника в работу

Dmitry
07.02.2018
16:28:27
L в SOLID это вообще очень интересно. там звучит слово "correctness"

и угадайте что?

с I никто не будет спорить, но это просто тайпклассы, например. или функции.

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

Denis
07.02.2018
16:29:58
L про сабтайпинг же

Dmitry
07.02.2018
16:30:23
мне кажется это можно без сабтайпинга попробовать, но что насчёт корректности:

корректность это вообще что?

если мы не знаем, что с корректностью было до замены на сабтип

не знаем что было после

Denis
07.02.2018
16:30:48
а покажи формулировку?

Dmitry
07.02.2018
16:31:04


Denis
07.02.2018
16:31:23
я пишу с утюга

спасибо

Dmitry
07.02.2018
16:31:32


Liskov substitution principle[6] “objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.” See also design by contract.

если мы не знаем ничего о корректности того, что было

не знаем, какие изменения и побочные эффекты мы вносим, заменяя на другие инстансы, что мы можем сказать о корректности?

Google
Dmitry
07.02.2018
16:32:25
ничего не могли сказать до, ничего не можем сказать после

Denis
07.02.2018
16:32:51
SOLID это как REST

из той же оперы

Dmitry
07.02.2018
16:33:00
мне кажется это как BS

Denis
07.02.2018
16:33:15
я разве не так сказал?

Dmitry
07.02.2018
16:33:21
ну я сказал это короче

короче - значит, правильнее

Denis
07.02.2018
16:33:30
засчитано

Dmitry
07.02.2018
16:33:36
!

это мы, кстати, еще про большие программы vs маленькие не поговорили еще

например, что 10K loc на сях - это ниочём

а на 10K loc на хаскелле - это ничего себе.

Denis
07.02.2018
16:36:22
я сегодня ретвитил про 200KLOC эльма в год

Dmitry
07.02.2018
16:36:50
и о клеточках из BS бинго, как о способе сделать из маленькой программы большую, что бы решить проблемы программы, когда она станет большой

Denis
07.02.2018
16:39:32
https://pbs.twimg.com/media/CxzX0scXUAA21uo.jpg

Александр
07.02.2018
16:40:49
https://pbs.twimg.com/media/CxzX0scXUAA21uo.jpg
Solving imaginary type safety issues

kana
07.02.2018
16:41:04
я сегодня ретвитил про 200KLOC эльма в год
и это ни о чем, много бойлерплейта, 3 строки отступа на строку кода

Leonid
07.02.2018
16:41:32
Вот у @voidlizard терпения то сколько.

Denis
07.02.2018
16:41:38
Dmitry
07.02.2018
16:42:16
Я на этой неделе менеджер, мне можно

Google
Dmitry
07.02.2018
16:42:40
На следующей может опять код писать буду

Denis
07.02.2018
16:42:57
я тоже, но я на работе терпение оставляю

На следующей может опять код писать буду
нет ничего постояннее синусоиды, типа?

неделя тут, неделя там

@lonokhov я с растоканала заржал. 9/10

Leonid
07.02.2018
16:46:37
Надо ещё фри монады притянуть

Dmitry
07.02.2018
16:47:03
@catamorphism не, мне просто теперь недели хватает, что бы переключиться

Раньше месяц нужен был

anton
07.02.2018
16:47:19
Кстати, в фримонадах там не эффективно они строятся, там проблемы с байндом в простой оригинальной реализации, на тайпклассах все же лучше, если несколько интерпретаций хочется

Denis
07.02.2018
16:48:17
Это Control.Monad.Free.Church решает

Denis
07.02.2018
16:48:21
емнип

anton
07.02.2018
16:48:55
И патерн матчинг он не совместим с edsl, ведь значений нет, это же синтаксич деревья все

Denis
07.02.2018
16:51:46
список это частный случай Free

Denis
07.02.2018
16:51:58
знаем) плавали

DList это частный случай FreeChurch

хотя все это у Кметта есть в 3 статьях про фри монады

Denis
07.02.2018
16:53:27
каким образом это частный случай?

Google
Denis
07.02.2018
16:53:51
F f a явно общее DList a

т.е. в другую сторону еще поверю

kana
07.02.2018
16:54:40
паттерны в хаскеле это такие смарт-конструкторы с большой буквы?

или их еще и метчить можно?

Denis
07.02.2018
16:55:49
PatternSynonyms матчабельные

Denis
07.02.2018
16:57:51
F f a явно общее DList a
тем, что DList можно выразить через type DList a = Codensity (Free ((,) a)) ()

Denis
07.02.2018
16:59:10
Ну так это означает что то, что справа - более общее. Т.к. инстанциируя это с другими функторами, получается больше вариаций.

Denis
07.02.2018
17:00:20
http://prntscr.com/ibh8ak

> edited

там до этого наоборот было написано ?

Denis
07.02.2018
17:00:48
потерял направление текста)

Denis
07.02.2018
17:01:00
> ну я и сказал ну и брехло )

Denis
07.02.2018
17:01:29
интересно так можно? newtype Rec f r = MkRec { unRec :: (f r -> r) -> r } newtype Rec' f = MkRec' { unRec' :: forall r. (f r -> r) -> r }

будет ли так равнозначно?

Denis
07.02.2018
17:05:21
не равнозначно

kana
07.02.2018
17:07:02
второй требует полиморфную по r функцию, а первый специализированную, которую составить намного проще (то есть потенциально и тип более населен)

Denis
07.02.2018
17:08:00
ну это понятно

интересно можно их свести к изоморфности?

Страница 819 из 1551