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

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

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

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

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