@haskellru

Страница 1212 из 1551
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
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
А есть какая-то мера когда законов достаточно?

? 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
беззаконные классы плохо т.к. легко нарушается граница абстракции
а вот у MonadReader какие законы? или это тоже плохой класс?

? 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
но тут трудно найти сторонников
MonadIO удалили из трансформеров? видимо есть сторонники

Ilya
20.05.2018
14:00:08
потому что он в base
да, надо завязывать искать что-то через хугл..

Евгений
20.05.2018
14:12:18
а вот у MonadReader какие законы? или это тоже плохой класс?
ask = lift ask local r (lift m) = lift (local r m) local r (return a) = return a local r (m >>= k) = local r m >>= local r . k

Могли бы и сами нагуглить

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

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

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


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