@haskellru

Страница 794 из 1551
Leonid
31.01.2018
13:18:26
Молодец!

Дмитрий
31.01.2018
14:41:12
Вылетело из головы, не могу вспомнить, название структуры, толи ди мап, толи думап. Суть в том, что там было толи два ключа по которым (любому из) можно было отыскать значение, толи ключ и значения могли работать взаимно. Есно это всё за логарифм (бинарные деревья же). Так вот было это года полтора назад, а сейчас вдруг нужно. Помогите найти, прошу.

Быстрый гуглинг не помог.

Alexander
31.01.2018
14:43:19
https://hackage.haskell.org/package/bimap-0.2.4/docs/Data-Bimap.html ?

Google
Anatolii
31.01.2018
14:43:30
я тоже нашел бимап:)

Дмитрий
31.01.2018
14:43:33
Благодарю.

Anatolii
31.01.2018
14:43:34
не успел:)

Alexander
31.01.2018
14:43:43
блин мне опять сервант мозг ест

иногда он сложный блин

Дмитрий
31.01.2018
14:44:39
Когда знаешь, что такое существет, но вспомнить не можешь :(

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

Alexander
31.01.2018
14:48:50
finally не прикрывает исключения

Дмитрий
31.01.2018
14:49:23
Так, а чем их можно прибить?

Anatolii
31.01.2018
14:49:42
catch сделайть

Дмитрий
31.01.2018
14:49:43
честно ловить try?

Alexander
31.01.2018
14:49:43
finally action finallier = (action `catch` (\(SomeException e) -> finalizer >> throw e) >> finallier

try/catch

Google
Alexander
31.01.2018
14:50:02
можно взять safe-exceptions/exceptions-safe

оно часто работает

так вот сервант

я сделал Streaming ответы, если они выдают стрим в каком-нить IO то все круто

но вот теперь у меня стрим в чем-нить более сложном, например ResourceT IO или даже ResourceT (Reader Db IO) и чего делать непонятно

контекст должен жить дольше, чем сервант делает ответ

Александр
31.01.2018
14:51:49
Тоже приходится через сервантные приколы продираться. К счастью, есть колоеги, умеющие в магию на типах, можно у них код покрасть.

Alexander
31.01.2018
14:51:51
т.е. его надо в HasServer отдавать

магия на типах это просто

не просто когда там внутри их бесконечные HasServer со 100500 недокументированых параметров и сервантовых врапперов в internals

хорошо, конечно когда авторы серванта в чятике есть

но все равно иногда тяжело

Дмитрий
31.01.2018
14:53:03
Ну у меня проще, пока никакой магии я переплёвываюсь между потоками через chan если кто умер, то сообщаю через finally по тем же чан :)

Kirill
31.01.2018
14:53:32
@qnikst в рабочем чатике?

Alexander
31.01.2018
14:53:38
(я не могу угадывать, но возможно async пакет может помочь)

Kirill да

это кстати и минус

Александр
31.01.2018
14:53:58
магия на типах это просто
Это то, за что нужно бить по рукам. Если сервант еще ничего, то Opaleye уже слишком. А коллега к тому же наворотил свои рекорды сбоку. Очень высокая accidental complexity.

Kirill
31.01.2018
14:54:04
А кто у вас из авторов?

Alexander
31.01.2018
14:54:09
Junial Arni

Google
Alexander
31.01.2018
14:54:13
или как там фамилиё

Julian

Kirill
31.01.2018
14:54:29
А, даже так, кул

Alexander
31.01.2018
14:54:35
Альп был, но он ушёл и свою фирму сделал давно ещё

кстати это минус, спросишь что-нить и не отмажешься от того, чтобы идти и делать PR

Kirill
31.01.2018
14:55:06
А как зовётся?

Фирма альпа?

Не в паблике?

Alexander
31.01.2018
14:55:52
не знаю

я с ним особо не общался

Александр
31.01.2018
14:56:03
Да, кстати. Можете накидать хорошие материалы по type families?

Kirill
31.01.2018
14:57:04
@qnikst a на сайте у него WT

Alexander
31.01.2018
14:57:18
хм.. ну может быть

Александр я в основном по документации в trac разбирался и с кучей игр со всякими регионами и т.п.

про опалай, кстати, наверное я согласен

но может мне было лень разбираться

Denis
31.01.2018
14:59:38
Дело в том что получаешь путем усложнения. Если получаешь много всгео и нахаляву, то почему бы и нет.

Я вот сторонник макбрайдовской философии

пусть типы пишут программы

Александр
31.01.2018
15:01:00
Дело в том что получаешь путем усложнения. Если получаешь много всгео и нахаляву, то почему бы и нет.
Получаешь высокий порог входа. Если хочется и дальше новичков от Хаскелля отпугивать, - то пойдет.

Google
Denis
31.01.2018
15:01:27
мне все равно что думает гипотетический новичок про мою кодобазу

Код пишется не для чтения вымышленными новичками, а разрабатывается в команде. Если команде нормально, то все в порядке. Если черезчур сложно править - не нормально.

Александр
31.01.2018
15:02:47
Сами по себе типы не виноваты, но код не должен быть рассчитан на то, что его сможет поддерживать только продвинутый разработчик.

Denis
31.01.2018
15:03:20
давайте все на го писать тогда

Александр
31.01.2018
15:04:05
давайте все на го писать тогда
Доведение до абсурда не есть аргумент. ... А в случае кастомных, еще не стабилизировавшихся решений, поддерживать сможет только сам автор

Denis
31.01.2018
15:04:22
го это не абсурд, это реалии индустрии

Admin
ERROR: S client not available

Александр
31.01.2018
15:05:26
го это не абсурд, это реалии индустрии
Го не абсурд. А аргумент, перескакивающий через несколько уровней сложности Хаскеля в обратном порядке - абсурд.

Andrei
31.01.2018
15:05:42
Если предметная область объективно сложна, то и её представление в типах тоже сложно, как бы оно просто не выглядело на бейсиках.

Дмитрий
31.01.2018
15:07:25
Если предметная область объективно сложна, то и её представление в типах тоже сложно, как бы оно просто не выглядело на бейсиках.
Предположу, что просто не опдобраны нормальные абстракции... оно часто так бывает. Сначала сложное, а потом выразишь через какую нибудь новую штуку и станет просто и понятно...

Александр
31.01.2018
15:07:44
Есть essential и accidental complexity. Против других дизайнерских решений типы проигрывают по второй шкале.

Дмитрий
31.01.2018
15:08:02
А вообще, есть вроде минимальная сложность представления. И с этой гадостью ничего не сделаешь :(

Но тут опять же нужно честно доказывать теорему, что проще чем Х явленияе Y записать не получится и хоть ты тресни :(

Andrei
31.01.2018
15:08:51
именно. https://fsharpforfunandprofit.com/posts/designing-with-types-making-illegal-states-unrepresentable/#why-bother-to-make-these-complicated-types

Александр
31.01.2018
15:09:56
Но магия на типах привносит свою accidental complexity, и она больше, чем у других решений (free DSL, например)

Denis
31.01.2018
15:10:53
Причем тут free?

Если нужны статические проверки, то нужны типы.

Хотите определенный класс ошибок исключить статически - типы. Хотите чтобы компилятор больше кода за вас писал - типы.

Google
Denis
31.01.2018
15:12:27
(ну во втором случае еще TH и прочие разновидности дженериков иногда помогают, но зависит от случая)

Дмитрий
31.01.2018
15:12:38
>Хотите чтобы компилятор больше кода за вас писал - типы. Шаблоны и кодогенерация?

Denis
31.01.2018
15:12:54
в шаблонах типы

Дмитрий
31.01.2018
15:13:06
А вот как заставить типами писать код типами, честно не знаю.

Разве что классами типов обобощать...

Denis
31.01.2018
15:13:28
типы пишут термы

Дмитрий
31.01.2018
15:13:35
Но это не совсем написание кода :)

Denis
31.01.2018
15:13:36
когда это возможно

Александр
31.01.2018
15:13:36
Нету такой задачи - чтобы компилятор код писал. Это прогоаммист придумал. А есть задачи предметной области.

Тёма
31.01.2018
15:13:40
Хотите typed holes –– типы.

?

Denis
31.01.2018
15:15:43
когда тайпклассами пользуетесь - вам компилятор код пишет, подбирая функции

Александр
31.01.2018
15:16:22
И статические проверки тоже - придумал программист. Ему показалось, что ошибки надо поисключать, и давай для этого вносить неоправданную сложность в проект. Хотя, может, ту же задачу проще и много понятнее было можно тестами решить.

Alister
31.01.2018
15:16:54
да и языки высокого уровня тоже программисты придумали

Denis
31.01.2018
15:16:57
дженерики в духе sop опять же для того, чтобы код не программист писал

Alister
31.01.2018
15:17:17
не хотят ироды на асемблере код писать по проекту на архитектуру

Denis
31.01.2018
15:18:10
Разумеется, программист сидит и думает как ему внести побольше сложности в свой проект, ему же с ним работать! Отличный аргумент!

Alexander
31.01.2018
15:18:15
блин библиотеки bos зло :/

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