
Alexander
20.05.2018
07:42:57
vit_r вроде адекватный а целом человек, но сишник головного мозга

Dmitry
20.05.2018
07:43:26

anton
20.05.2018
08:36:59
От практиков хаскеля интересный доклад с юмором, всё так
https://www.youtube.com/watch?time_continue=526&v=7NB8tMa8sUk
как делают большие веб-приложения, перешли от Руби к Хаскелю после больших проблем с поддержкой руби-кода

Google

anton
20.05.2018
08:37:39
и что получилось в итоге

Alexander
20.05.2018
08:59:53
@graninas не ваши ребята? ^

Александр
20.05.2018
09:02:28
Мои зовутся Restaumatic, а эти какие-то Vacation Labs. Но кейс, наверное, похожий, я еще не смотрел.

anton
20.05.2018
09:08:43
Я так понял они делают конструктор для сайтов по внутреннему туризму в Индии
Билеты, отели, букинг
Что интересно когда они с руби переписали уних было 150k, а на хаскеле 50k получилось, они за поддержку оч хвалят, но есть за что и ругают)

Maxim
20.05.2018
09:35:52
народ, а можно где-то оверрайднуть ghc-options стеку, чтобы не трогать стек файл и кабал файл в гите? задрало постоянно делать stash перед коммитом

Aleksey
20.05.2018
09:38:00
переменные окружения по идее должны работать

Yuriy
20.05.2018
09:55:14
через STACK_YAML или --stack-yaml передать свой конфиг

Alexander
20.05.2018
09:58:56
cabal.project.local cabalface.hs

IC
20.05.2018
10:23:29
никак не могу найти на хакадже минимальные авторские кметтолинзы... у него в пакетах только обычные есть. он их отдал чтоль?
https://hackage.haskell.org/package/microlens это они?

Ilya
20.05.2018
10:28:56
а я вчера искал Map Class от Сноймана, тоже не нашёл. Может кто знает, где он? Класс упоминается в конце этой статьи
https://www.yesodweb.com/blog/2016/03/why-i-prefer-typeclass-based-libraries
I've put my Map abstraction classes on Github inside the Jump project.
Видимо раньше они были вот тут https://github.com/commercialhaskell/jump , но проект удалён. В Foundation тоже не нашёл

Google

Alexander
20.05.2018
13:31:37
а если найдешь то надо послать пулреквест, чтобы удалили

kana
20.05.2018
13:32:36
(потому что снойману это нравится, видимо, а то пока безаргументно)

Ilya
20.05.2018
13:32:38
из-за того что линзы есть?

Alexander
20.05.2018
13:33:27
и полиморфизм на пустом месте

kana
20.05.2018
13:33:53
так вроде чисто ради полиморфизма это и делалось

Ilya
20.05.2018
13:33:54

kana
20.05.2018
13:34:09
чтобы не HashMap.insert/ListMap.insert, а просто insert

Alexander
20.05.2018
13:34:33
это бесполезный полиморфизм в лучшем случае
а ещё иногда и вредный, когда сложность операций становится непредсказуемой
и может сильно варьироваться от структуры к структуре
в этом отношении подход линз гораздо разумнее
беззаконные классы плохо т.к. легко нарушается граница абстракции
у таких классов есть плюс - писать бенчмарки проще
чтобы сравнить разные реализации структур не меняя код

? animufag ?
20.05.2018
13:38:37
А есть какая-то мера когда законов достаточно?

Ilya
20.05.2018
13:39:05

? animufag ?
20.05.2018
13:39:11
Ну типа напишешь закон с id или const и всё тайпкласс надёжный?

Google

Alexander
20.05.2018
13:39:42
когда для методов класса есть инфарианты

kana
20.05.2018
13:39:47
полагаю законы должны связывать операторы стуктуры (как дистрибутивность связывает моноиды полукольца)

Alexander
20.05.2018
13:39:50
нету законов - точно плохо
да

? animufag ?
20.05.2018
13:41:51
Такая глупость по моему. Делаешь такой себе полиморфизм, а тебе навязывают что ты должен это делать в стиле матана

Ilya
20.05.2018
13:42:16

kana
20.05.2018
13:42:32
нет, ни разу

Ilya
20.05.2018
13:42:38
(и прочим "матаном")

? animufag ?
20.05.2018
13:42:54
Типа 2местный оператор написал и проверяешь его на комутативность, ассоциативность. Лишь бы хоть какое-то свойство

kana
20.05.2018
13:43:18
полагаю речь про вещи типа
insert k v2 . insert k v1 = insert k v1
и похоже что не все мапы такое поддерживают

Alexander
20.05.2018
13:43:42
иначе получается убожество вроде classy lens
classy-prelude т.е.
и monotraversable

Ilya
20.05.2018
13:44:29

? animufag ?
20.05.2018
13:44:30

kana
20.05.2018
13:44:45
ну это просто пример
для интуиции по моему самое то

? animufag ?
20.05.2018
13:45:20
Ну типа были введены имена для операции на основе их свойств
И теперь ты пытаешься дать свойства своей предметной области

Google

? animufag ?
20.05.2018
13:45:54
И всё это в языке где это все не проверяется
Просто воображаешь себя каким то математиком

Alexander
20.05.2018
13:48:15
просто практика показывает, что если этого не придерживаться, то код становится слишком сложным и плохо поддерживаемым
если начинает такого хотеться, то с большой долей вероятности, спроектировано не верно
хотя я лично не много чего имею против беззаконных классов, и иногда использую, обычно это маркер о том, что в этом месте стоит подумать ещё раз
я ещё не люблю когда MonadIO m вместо IO делают
но тут трудно найти сторонников
но так уж и быть я соглашусь с тем что специализацию для IO сделают

Ilya
20.05.2018
13:55:41

kana
20.05.2018
13:58:55

Ilya
20.05.2018
14:00:08

Alexander
20.05.2018
14:04:53

Евгений
20.05.2018
14:12:18
Могли бы и сами нагуглить

Антон
21.05.2018
16:02:01
Народ, я тут решаю кату — интерпретатор для brainfuck-подобного языка. У каты есть один нюанс — интепретация программы может закончиться не только после исчерпания команд в программе, но и при выходе каретки за границы памяти. Вопрос: стоит ли делать трансформер монады, чтобы не пробрасывать явно этот short-curcuit вариант, или я уже упарываюсь и задачу можно решить попроще?

kana
21.05.2018
16:03:04
а что за ката? По моему во всех катах про бреинфак на хаскеле лента (или ленты, была там ката с 3 лентами) подразумевалась бесконечной

Антон
21.05.2018
16:05:26

Denis
21.05.2018
16:06:14
интересно, что за ката
согласен с @kana_sama там в основном кассеты

Google

Антон
21.05.2018
16:07:26
Вот: https://www.codewars.com/kata/esolang-interpreters-number-2-custom-smallfuck-interpreter

Denis
21.05.2018
16:09:57
Smallfuck :D

Антон
21.05.2018
16:17:30
В общем, monad transformer тут — не оверкилл?

kana
21.05.2018
16:27:12
нет

Антон
21.05.2018
18:03:13
Гм, а свой трансформер тут не нужен — ExceptT — ровно то, что мне требуется

IC
21.05.2018
18:07:58
Уже который год жду когда мне придётся свою монадку написать, но нет, всё уже написано до нас.

Антон
21.05.2018
18:14:19

kana
21.05.2018
18:23:08