Бляди тоже ок, ага. Войти !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 / 3732 дня назад

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

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

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

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