Я и мой ёбаный кот на фоне ковра. Войти !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 / 4013 дней назад

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

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

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

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