БЕГЕМОТИКОВ МОЖНО! Войти !bnw Сегодня Клубы
Какое же зло эти именованые поля внутри GADT. Для тех, кто не понял, из хаскеля делается питон при помощи вот таких вот строчек: ``` data Foo = Bar { barField :: String } | Baz { bazField :: String } myFunc :: Foo -> String myFunc foo = bazField foo main = print (myFunc (Bar "lalalala")) ``` Пойду пробовать https://www.haskell.org/ghc/docs/7.8.3/html/users_guide/promotion.html
#C9YGET / @kb / 3683 дня назад

А при чём тут питон?
#C9YGET/C2H / @l29ah / 3683 дня назад
@l29ah Рантайм-ошибка.
#C9YGET/32L / @kb --> #C9YGET/C2H / 3683 дня назад
удобно // кокок статическая типизация кококо
#C9YGET/SW2 / @anonymous / 3683 дня назад
@anonymous Ну вот эти promotion.html как раз то что нужно делают -- создастся тип на каждый конструктор (то есть появятся типы Bar и Baz), а также появится кайнд Foo (кайнд -- "тип над типами"). И тогда myFunc превратится в `myFunc :: Baz -> String`.
#C9YGET/SKY / @kb --> #C9YGET/SW2 / 3683 дня назад
не вижу ни одного gadt
#C9YGET/IK6 / @qnikst / 3683 дня назад
@qnikst Ой, имелся в виду ADT, извиняюсь.
#C9YGET/XCU / @kb --> #C9YGET/IK6 / 3683 дня назад

update --message=C9YGET --format=markdown же, ну!

#C9YGET/1OQ / @minoru / 3682 дня назад
надёжно.
#C9YGET/WIF / @gds / 3682 дня назад
@minoru я єту джабберопарашу не открівал уже месяца два
#C9YGET/BZ9 / @kb --> #C9YGET/1OQ / 3682 дня назад
@gds Та вообще, конечно, надо запретить именованые поля в ADT, это же позорище какое-то.
#C9YGET/X40 / @kb --> #C9YGET/WIF / 3682 дня назад
@polecat Чо? В идеале -- надо иметь по отдельному типу на каждый конструктор и давать доступ только к конкретному типу (LANGUAGE DataKinds, по идее, примерно такое позволит делать, просто: 1. это не отменяет, что будет дохуя проблем как в /0; 2. у меня почему-то не заработало, грит что не может для моего типа сделать, буду на кошках тернироваться)
#C9YGET/IHK / @kb --> #C9YGET/2LT / 3682 дня назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.