@haskellru

Страница 1292 из 1551
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
а rayon, intel click и прочее, не считается автоматическим?
Какое оно автоматическое, если оно явное? Это просто абстракции для параллельных вычислений.

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
модель слишком сложная, в голову целиком плохо помещалась. он расчитывал на автоматику, и, видимо, использовал какой-то из ныне дохлых проектов. но автоматика не справилась тоже
сомнительно, эти дохлые проекты видели по паре человек во всяких универах, а в ghc до конца двухтысячных SMP вообще не было, не то что автоматического

Daniel
20.06.2018
16:39:05
ну так он и был из немецкого и американского университетов

да и сейчас есть, просто модель заглохла (но докторскую он на ней защитил)

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

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

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
что значит "нормальный"?
с SMP, асинхронным и.о, параллельным сборщиком

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?

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

Yuriy
20.06.2018
18:32:41
просто добавь AllowAmbiguousTypes в прагмы
классический способ — передать Proxy

Денис
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
Если добавить AllowAmbigousTypes, то оно иногда будет при выведении типов фейлиться?
будет всегда фэйлиться, но позже, так что будет возможность указать тип вручную

Про Proxy не понял
Proxy инъективен

Денис
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
ну да, часть типа

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 не хотел, потому что сначала в конструктор обернуть надо, потом разворачивать...

а data families использовать можно?
C 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 легло

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
apt install cask
cabal install cask

Алексей Ayaye :)
21.06.2018
06:15:04
да желание их избегать - это нормально
почему? во времена С мне очень не хватало таких typedef, которые компилятор считает другим типом

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

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

Это синтаксис

Алексей Ayaye :)
21.06.2018
07:01:48
Struct с одним полем, you are welcome
это понятно, в сложных случаях так и делал. но это лишь подтверждает актуальность newtype

Ilya
21.06.2018
07:02:55
Это не оператор
ну разбор то всё равно происходит

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