Meowbe/BSD-2-Clause
емнип
Meowbe/BSD-2-Clause
Никак не могу понять
A64m
Я думаю это очень даже возможно, учитывая что окамл однопоточный
это безусловно возможно, но с кучей костылей в бекенде и патчей от окамлистов в ллвм, что для них тогда показалось не очень веселой перспективой
Meowbe/BSD-2-Clause
Я не вижу вообще припятствий
Meowbe/BSD-2-Clause
Если честно
A64m
ну для начала кол конвеншон для окамла надо будет для ллвм написать, дальше надо будет как-то страдать чтоб окамловские эксепшены быстро работали, окамлисты их массово применяют для логики, для шортсеркитов всяких, потому что БЫСТРО. Ну и хаскелистам легко ГЦ в данном случае приделывать к ллвм, сишный стке-то они не используют, а окамлисты используют, а поддержка ГЦ в ллвм рудиментарная
A64m
вот навскидку три препятствия уже, вообще мало что зная про окамл и не приходя в сознание, а если разбираться там вообще адовые бездны раскрываются
Кабачок
haskell > ocaml
терм покажи
Зигохистоморфный
кана
конструктивный пруф
Dmitry
если писать в какой-нибудь блог список "чем меня бесит хаскель", то через какое-то время получится драфт спецификации нового языка
Aleksey
в котором собрано все самое плохое из хаскеля?
sherzod
хех
кана
получится обратно хаскель
Dmitry
если это выкинуть / передалать, получится новый язык, который зайдет наверное ок
Aliester
ага
Aliester
там точно будет пункт "он не ооп"
john
как будто ООП нужно
Дмитрий
А есть какие-то статьи по развитию TH? А то я как-то в последние пол года эту тему упскаю :(
Дмитрий
как будто ООП нужно
Только не говори, что у него совсем нет плюсов.
Дмитрий
Зигохистоморфный
Да.
https://markkarpov.com/tutorial/th.html
Дмитрий
Я не это имел в виду, как применять, я знаю. Мне интересно, что нового делают в этом направлении.
Евгений
A64m
но я так понимаю, что вмерджевание TTG не состоялось пока, так что весь этот проект под вопросом
Дмитрий
Что ты имеешь в виду под ООП?
Стандартную тройку Наследование, Инкапсуляция, полиморфизм. Лично для меня просто способ организовывать данные, не более.
Алексей
А доступ к полям чрез точку?
Алексей
Без точки это какой-то палёный ООП
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
Ок, спасибо.
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 - интересная штука
Сергей
а начать попробую с трансформера
Зигохистоморфный
Validation - интересная штука
ну это как Except только накапливает ошибки, а не валится на первой
Aleksei (astynax)
Трансформер попробовать - правильное решение. Это полезно
Сергей
хм, а как он может накапливать ошибки, например со второй стадии, если для её запуска используется результат первой ?
Aleksei (astynax)
Никак, конечно
Alexander
validation тут смысла нету особого, тут байнд
кана
Validation тут не в тему
Alexander
ошибки не накопишь
Anonymous
При первой левой она и станет результатом
Сергей
во
Alexander
вон @kana_sama шарит
Aleksei (astynax)
В EitherT первый Left прервёт всю цепочку, да