Best viewed with LeechCraft on Microsoft Linux. Войти !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 / 4347 дней назад

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

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

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

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