
Daniel
20.06.2018
16:29:55
он много вокруг своей модели приседал
собственно, от общения с ним я и вынес представления об автоматическом распараллеливании

Anatolii
20.06.2018
16:32:07
Ну в целом у хаскеля же есть фичи которые сейчас в моде, и даже больше
Зелёные треды

Google

Anatolii
20.06.2018
16:32:29
Канкаренси примитивы хорошие
Что мешает ему ворваться? @onokonem

A64m
20.06.2018
16:33:02

Leonid
20.06.2018
16:33:14
parmap же был какой-то
но не автоматически

Anatolii
20.06.2018
16:33:34
Это мы вчера уже выяснили

Psy
20.06.2018
16:33:46

A64m
20.06.2018
16:33:52
нет

Vladimir
20.06.2018
16:34:30
нет
а rayon, intel click и прочее, не считается автоматическим?

Daniel
20.06.2018
16:35:17
но не автоматически
модель слишком сложная, в голову целиком плохо помещалась. он расчитывал на автоматику, и, видимо, использовал какой-то из ныне дохлых проектов. но автоматика не справилась тоже

Alexander
20.06.2018
16:35:46

Vladimir
20.06.2018
16:37:03

Mikhail
20.06.2018
16:37:10
D плох, потому что он ушел от простоты си, и мало что дал взамен

Google

Mikhail
20.06.2018
16:37:30
И инфраструктура слабовата

A64m
20.06.2018
16:38:16

Daniel
20.06.2018
16:39:05
ну так он и был из немецкого и американского университетов
да и сейчас есть, просто модель заглохла (но докторскую он на ней защитил)

Anatolii
20.06.2018
16:40:04
ого, саксес стори хаскеля

Daniel
20.06.2018
16:41:56
вот да. оттуда я вынес представление о хаскеле как о языке для академических ученых. потому как с прикладной областью не сложилось

Alexander
20.06.2018
16:42:55

A64m
20.06.2018
16:43:00
это в какие годы было-то?

Yuuri
20.06.2018
16:44:31

Daniel
20.06.2018
16:46:11
коллеги, вам обязательно надо со мной спорить
?
я же предельно ясно выражаюсь

A64m
20.06.2018
16:48:24
ну, не думаю, что много найдется хаскелистов, которые скажут, что хаскель годился для чего-то практического года до 2010

Daniel
20.06.2018
16:49:06
а что изменилось?
раз уж я к вам забрел - повышу уровень эрудиции :)

A64m
20.06.2018
16:51:53
более-менее нормальный рантайм, библиотеки какие-то появились

Yuriy
20.06.2018
16:52:54
не тормозит на ровном месте?

A64m
20.06.2018
16:53:12
ну и общая недоделанность как-то сгладилась

Google

A64m
20.06.2018
16:54:12

Leonid
20.06.2018
17:06:06
Хаскель в проде, зато на свободе

Artem
20.06.2018
17:27:46
Параллельный сборщик, мне казалось, всё ещё недоделанный: на большом количестве процессоров (48 и выше), всё начинает сильно тормозить

Leonid
20.06.2018
17:59:24
Запускай два процесса по 24 ядра

Денис
20.06.2018
18:25:41
Ошибка какая-то странная не могу разобраться плиз хелп https://pastebin.com/mN5s4iwX

Denis
20.06.2018
18:30:15
просто добавь AllowAmbiguousTypes в прагмы

Денис
20.06.2018
18:31:15
А почему они Ambiguous?

Yuriy
20.06.2018
18:31:36

Денис
20.06.2018
18:32:29
Понял

Yuriy
20.06.2018
18:32:41

Денис
20.06.2018
18:33:31
Это из-за хиндли-милнера и возможной неинъективности Context?
Если добавить AllowAmbigousTypes, то оно иногда будет при выведении типов фейлиться?

Yuriy
20.06.2018
18:35:39
их, родимых

Денис
20.06.2018
18:36:09
Про Proxy не понял

Yuriy
20.06.2018
18:36:54

Денис
20.06.2018
18:37:30
http://hackage.haskell.org/package/base-4.11.1.0/docs/Data-Proxy.html?

Yuriy
20.06.2018
18:37:54
добавление в функцию фиктивного параметра Proxy m позволит вычислить m

Денис
20.06.2018
18:38:26
понял

Google

Денис
20.06.2018
18:38:33
костыль какой-то

Yuriy
20.06.2018
18:39:35
хотя она сама что-то вроде костыля в системе типов

Денис
20.06.2018
18:40:16
эх

A64m
20.06.2018
18:43:18
эх
можно не прокси, а TypeApplications использовать, там просто типы указываются, параметры в функции добавлять не надо

Денис
20.06.2018
18:46:54
Ну то есть тоже явно тип прописывать нужно, но не через ::, а через @?

A64m
20.06.2018
18:47:26
ну да, часть типа

Yuriy
20.06.2018
18:48:20

A64m
20.06.2018
18:49:20
ну AllowAmbiguousTypes отключают проверку, которая запрещает писать код, который без TypeApplications использовать не получится

Admin
ERROR: S client not available

Денис
20.06.2018
18:51:48
Вообще может этого можно как-то избежать? К примеру вооще type families не использовать. Я хотел абстрагировать доступ к базе данных, что б в будущем можно было бд заменить на rest api. Нашёл статейку: http://www.parsonsmatt.org/2018/03/22/three_layer_haskell_cake.html. Там на втором уровне AcquireUser вроде то, что мне нужно. Но я не нашёл хорошего способа добавить туда инициализацию модели и извлечение значения из монады. Можно, конечно, использовать конкретные функции, но это будет нарушением абстракции, просто поменять реализацию не получится.

A64m
20.06.2018
19:00:07
а data families использовать можно?

Денис
20.06.2018
19:00:13
Ещё был вариант написать код использующий определённый набор функций, которые делают запросы к бд, а позже заменить этот модуль на тот, который использует rest api и реализует функции с такими же названиями
Да всё можно, лишь бы работало
Попробую
data не хотел, потому что сначала в конструктор обернуть надо, потом разворачивать...

Ilya
20.06.2018
21:08:06
хах, я недавно пробовал похожую задачу решить, только ещё похардовее
но в итоге понял что оно не выразимо в текущей системе типов хаскеля

Google

Daniel
20.06.2018
21:08:56
и что делает хаскелист, встретив такое?

Ilya
20.06.2018
21:09:08
смиряется

Daniel
20.06.2018
21:09:16
а задачу куда?

Ilya
20.06.2018
21:09:20
но вообще в планах немного переписать API surface
что бы на GADT легло

Yuuri
20.06.2018
21:11:06

Ilya
20.06.2018
21:14:54
угу, там тоже была проблема с тем, что хотелось в произвольной монаде использовать типы данных и без явного указания манадки через TypeApplication или без оборачивания в newtype не выходило

A64m
20.06.2018
21:23:18
быть хаскелистом:
1) изобретаешь ньютайпы как стредство деланья в хаскеле чуть менее чем всего
2) избегаешь их

Ilya
20.06.2018
21:27:23
я не настоящий сварщик
у меня даже PhD нет

Kirill
20.06.2018
21:27:41
а каску где нашёл?

Alister
20.06.2018
21:28:01
apt install cask

A64m
20.06.2018
21:28:29
да желание их избегать - это нормально
и понятно

IC
20.06.2018
21:30:31

Yuuri
20.06.2018
21:55:25

Алексей Ayaye :)
21.06.2018
06:15:04

Leonid
21.06.2018
06:59:29

Ilya
21.06.2018
06:59:43
на стеке вопрос забавный, каков приоритет оператора (::)? Он меньше, чем у ($), -1 что ли тогда

Aleksey
21.06.2018
07:01:16
Это не оператор
Это синтаксис

Алексей Ayaye :)
21.06.2018
07:01:48

Ilya
21.06.2018
07:02:55