Meowbe/BSD-2-Clause
емнип
Meowbe/BSD-2-Clause
Meowbe/BSD-2-Clause
Никак не могу понять
Meowbe/BSD-2-Clause
Я не вижу вообще припятствий
Meowbe/BSD-2-Clause
Если честно
A64m
ну для начала кол конвеншон для окамла надо будет для ллвм написать, дальше надо будет как-то страдать чтоб окамловские эксепшены быстро работали, окамлисты их массово применяют для логики, для шортсеркитов всяких, потому что БЫСТРО. Ну и хаскелистам легко ГЦ в данном случае приделывать к ллвм, сишный стке-то они не используют, а окамлисты используют, а поддержка ГЦ в ллвм рудиментарная
A64m
вот навскидку три препятствия уже, вообще мало что зная про окамл и не приходя в сознание, а если разбираться там вообще адовые бездны раскрываются
Кабачок
Зигохистоморфный
кана
конструктивный пруф
Dmitry
если писать в какой-нибудь блог список "чем меня бесит хаскель", то через какое-то время получится драфт спецификации нового языка
Aleksey
в котором собрано все самое плохое из хаскеля?
sherzod
хех
кана
получится обратно хаскель
Dmitry
если это выкинуть / передалать, получится новый язык, который зайдет наверное ок
Aliester
ага
Aliester
там точно будет пункт "он не ооп"
john
как будто ООП нужно
Дмитрий
А есть какие-то статьи по развитию TH? А то я как-то в последние пол года эту тему упскаю :(
Зигохистоморфный
Дмитрий
Зигохистоморфный
Да.
https://markkarpov.com/tutorial/th.html
Дмитрий
Я не это имел в виду, как применять, я знаю. Мне интересно, что нового делают в этом направлении.
Евгений
A64m
A64m
но я так понимаю, что вмерджевание TTG не состоялось пока, так что весь этот проект под вопросом
A64m
Дмитрий
Что ты имеешь в виду под ООП?
Стандартную тройку Наследование, Инкапсуляция, полиморфизм.
Лично для меня просто способ организовывать данные, не более.
Евгений
Алексей
А доступ к полям чрез точку?
Алексей
Без точки это какой-то палёный ООП
A64m
ЛИНЗЫ
Алексей
ОПЕРАТОРЫ ОТ ЛИНЗ
A64m
A64m
чтоб в "методы" передать ссылку на себя и родителя
A64m
обычный энкодинг из ТАПЛ
Зигохистоморфный
Зигохистоморфный
вроде считается что вся эта императивщина некая бесконечная коалгебра (привет вам линзы)
A64m
этот ооп-энкодинг даже в виде библиотеки есть, правда с лицензией, делающей библиотеку бесполезной https://hackage.haskell.org/package/oo-prototypes-0.1.0.0/docs/src/Data-Prototype.html
Зигохистоморфный
kosc
А кто такой этот ваш Гонзалес, помимо всего прочего? Чем знаменит?
kosc
Пытался гугла спросить, но гугл не понял, кого я имею в виду.
Arseniy
Haskell for all
http://www.haskellforall.com/?m=1
kosc
Ок, спасибо.
Ignat
kosc
Неа
Сергей
Ребята, кто видит как такую конструкцию хорошо написать ?
https://gist.github.com/ivanovs-4/30836f0becb67779758f18dce38c98bb#file-compose-io-either-hs
kalloc
конечно превью фото у гистов это полезно
Сергей
Что тут можно сделать чтобы не строить лестницы вправо?
Aleksei (astynax)
Either - монада. Можно сделать монадически
Зигохистоморфный
какой нибудь Validation если надо еще накапливать Left
ᛏᚺᛖ ᛚᛖᛋᛒᛁᚨᚾ ᛗᚨᚾ ᚷᛁᚱᛚ 🐝
а насколько в данном случае подойдёт трансформер монад?
Сергей
да, это вопрос
Aleksei (astynax)
Без трансформера никак, т.к. тут IO
Aleksei (astynax)
EitherT IO
Сергей
предположим, под Left будет один и тот же тип, тогда можно runEitherT ?
Aleksei (astynax)
Да, тип ошибки будет один
Aleksei (astynax)
Но можно сложить варианты в сумму
Зигохистоморфный
https://www.stackage.org/haddock/lts-10.3/validationt-0.2.0.0/Control-Monad-Validation.html может это?
Зигохистоморфный
или https://www.stackage.org/haddock/lts-10.3/validate-input-0.4.0.0/Data-Validator.html
Aleksei (astynax)
В IO можно ещё и исключения заюзать
Сергей
я к сожалению до сих пор путаюсь в исключениях. Похоже, пришло время разобраться пристально
Сергей
Validation - интересная штука
Сергей
а начать попробую с трансформера
Aleksei (astynax)
Трансформер попробовать - правильное решение. Это полезно
Сергей
хм, а как он может накапливать ошибки, например со второй стадии, если для её запуска используется результат первой ?
Aleksei (astynax)
Никак, конечно
Alexander
validation тут смысла нету особого, тут байнд
кана
Validation тут не в тему
Alexander
ошибки не накопишь
Anonymous
При первой левой она и станет результатом
Сергей
во
Alexander
вон @kana_sama шарит
Aleksei (astynax)
В EitherT первый Left прервёт всю цепочку, да