@haskellru

Страница 757 из 1551
Alexander
22.01.2018
14:03:39
а у нас есть TClosableTChan которые клонировать можно?

@int_index насколько мне известно в общем случае в зависимых типах задача неразрешима

Vyacheslav
22.01.2018
14:04:08
мне казалось что вроде как раз разрешима, если какую-то совсем дичь не брать

в System F с этим все хорошо

Google
Alexander
22.01.2018
14:04:28
общем случае = с зависимыми типами

Vyacheslav
22.01.2018
14:04:37
в хаскелле нет зависимых типов

пока нет депендент хаскелля

A64m
22.01.2018
14:04:53
Alexander
22.01.2018
14:05:01
в telegram не хвататет тредов

Leonid
22.01.2018
14:05:12
/me всегда выступал за сильные, независмые типы.

Index
22.01.2018
14:05:21
Leonid
22.01.2018
14:05:41
можно не префиксить
чойта, две функции с одним именем не бывает.

Антон
22.01.2018
14:06:08
A64m
22.01.2018
14:06:25
чойта, две функции с одним именем не бывает.
дак с дупликейт рекорд филдс же

Leonid
22.01.2018
14:06:29
можно не префиксить
я про data Foo = Foo { bar :: Int } и bar :: Lens' Foo Int

Антон
22.01.2018
14:06:30
Правда, я не считаю это хорошей вещью

A64m
22.01.2018
14:07:33
в хаскелле нет зависимых типов
для того чтоб испортить вывод типов в общем случае GADT достаточно

Google
Leonid
22.01.2018
14:07:52
Скажи это плюсистам
в плюсах норм. там главное все аргументы как explicit пометить.

Index
22.01.2018
14:08:40


А дальше Эйзенберг рассказывает про то, как он печёт пироги

Антон
22.01.2018
14:08:58
в плюсах норм. там главное все аргументы как explicit пометить.
Лень. Плюс в нормальных языках вообще нет такой фигни, как имплисит конструктор

Leonid
22.01.2018
14:09:24
нормальных языков не бывает

Index
22.01.2018
14:09:45
А дальше Эйзенберг рассказывает про то, как он печёт пироги
У него описан алгоритм Bake, который дает type inference / type checking для Haskell, и выдает Pico (аналог System FC, который потом перерос в System D)

A64m
22.01.2018
14:09:57
Антон
22.01.2018
14:10:01
нормальных языков не бывает
Это да. Но есть такие, которые к этому приближаются

Index
22.01.2018
14:11:57
И вот у нас есть singletons, для которых вывод типов уже есть. А потом мы заменим их на pi-квантификатор, и что, вывод типов куда-то деться должен?

A64m
22.01.2018
14:12:03
я про data Foo = Foo { bar :: Int } и bar :: Lens' Foo Int
Prelude> :set -XDuplicateRecordFields Prelude> data Foo = Foo { foo :: Int } Prelude> :set -XRecordWildCards Prelude> foo Foo{..} = foo Prelude> foo $ Foo 42 42

ну и линзы соотв. можно

Leonid
22.01.2018
14:12:54
это всё меняет

Index
22.01.2018
14:13:08
для того чтоб испортить вывод типов в общем случае GADT достаточно
Вот именно, только никто этим не прикрывается, и в GHC для частных случаев с GADT все более менее нормально работает.

А в Idris сказали "у нас dep types!!1" и забили на inference.

Евгений
22.01.2018
14:13:30
В идрисе зависимые типы и там задача вывода типа в общем случае неразрешима
В Хаскеле System F, для него тоже вывод типов неразрешим. https://web.archive.org/web/20070929211126/http://www.church-project.org/reports/Wells:APAL-1999-v98-no-note.html

A64m
22.01.2018
14:13:46
у завтипщиков просто теперь парадигма такая, вывод типов нам не интересен, мы теперь программы выводим

(правда выведение программ на практике не так здорово, как выведение типов где оно есть пока работает)

Google
Евгений
22.01.2018
14:17:10
Без учёта first-class polumorphism это уже Х-М и ML, немного на 30 лет назад от хаскеля

A64m
22.01.2018
14:18:28
ну меньше, на 10

Vyacheslav
22.01.2018
14:19:00
ну если ты в 2040 живешь, то может и на 30)

в общем, мне кажется решения сразу забить на вывод типов в идрисе было норм, с учетом того, что там есть вывод не в top-level функциях и он работает для простых примеров

Евгений
22.01.2018
14:20:25
Если забить на вывод типов, то достаточно агды

Vyacheslav
22.01.2018
14:20:28
тем более что top-level код типами аннотировать вроде как правильно

Если забить на вывод типов, то достаточно агды
осталось только прекратить там использовать весь utf и сделать простой IO

A64m
22.01.2018
14:20:58
решение не было норм, да и то что там TDNR тупой это решение никак не извиняет, в языке где аннотации типов обязательные перегрузка вообще идеально должна работать, в идрисе это не так

Евгений
22.01.2018
14:21:04
ну меньше, на 10
Оригинальный пейпер Хиндли 69'ый год

A64m
22.01.2018
14:21:37
Оригинальный пейпер Хиндли 69'ый год
Милнер же его не читал и сам изобрел в конце 70-х

Vyacheslav
22.01.2018
14:21:52
оригинальный про System F где-то там же, но в общем это ни о чем не говорит

A64m
22.01.2018
14:21:59
так что на мл это 69 не рапространяется

Евгений
22.01.2018
14:23:11
оригинальный про System F где-то там же, но в общем это ни о чем не говорит
Мы о тайп инференс говорим. До 94'ого вывод типов System F никто и не исследовал всерьёз, а на практике юзали Х-М

Vyacheslav
22.01.2018
14:23:32
Coq вроде пораньше появился 94-го

так что не только Х-М

Евгений
22.01.2018
14:26:40
Милнер же его не читал и сам изобрел в конце 70-х
Ну даже если конец 70'ых, всё равно 25 лет получается. Тикет по rank-n-types открыт только в 2005 году: https://prime.haskell.org/ticket/60

Пейпер по OutsideIn(X) — 11'ый год

Leonid
22.01.2018
14:30:15
ну и линзы соотв. можно
чёт у меня даёт функцию определить, а потом жалуется при попытке применить :(

Google
Евгений
22.01.2018
15:27:51
Ну судя по истории тикета не оч

A64m
22.01.2018
15:45:10
Ну судя по истории тикета не оч
5.04 (11 July 2002) The type system now supports full rank-N types (previously only limited rank-2 types were supported) rank-2 используется в пейпере по ST 94-го года, т.е. в версиях 0.X уже было

Евгений
22.01.2018
15:46:07
Rank 2 это всё-таки Х-М на дрожжах, хотя конечно это уже прогресс по сравнению с ML'ями

A64m
22.01.2018
15:59:40
чёт у меня даёт функцию определить, а потом жалуется при попытке применить :(
да, только с классами работает data FooBar = FooBar { foo :: Int, bar :: Bool } data BarFoo = BarFoo { bar :: Bool, foo :: Int } class Foo a where foo :: a -> Int instance Foo FooBar where foo FooBar{..} = foo instance Foo BarFoo where foo BarFoo{..} = foo t1 = foo $ FooBar 42 True t2 = foo $ BarFoo True 24

Leonid
22.01.2018
16:00:31
у меня и с классами в t1, t2 жалуется

может потому что у меня один из рекордов импортируется

Foo
22.01.2018
16:04:33
https://www.youtube.com/watch?v=9SOFqWYpf9Y

Alexander
22.01.2018
16:08:26
хм...

Quet
22.01.2018
16:09:28
а что плохого в hpack?

Index
22.01.2018
16:12:01
в видео втирают, что типы это "не столь важно"

Admin
ERROR: S client not available

Index
22.01.2018
16:12:17
правильно их в кутузке везут, за такую ересь

Yuriy
22.01.2018
16:12:51
а что плохого в hpack?
ничего. разве что отстаёт от Cabal по фичам

Foo
22.01.2018
16:13:09
их за распитие везут

Yuriy
22.01.2018
16:13:34
и йамл плох сам по себе

Quet
22.01.2018
16:13:36
ну что отстает эт само собой но догонят еще ) там просто выше ругали снойманитов в том числе за него

Alister
22.01.2018
16:15:35
стоит ли учить лисп?

Тёма
22.01.2018
16:15:45
да

kana
22.01.2018
16:15:46
Для чего?

Index
22.01.2018
16:15:49
Лиспа нет

Google
kana
22.01.2018
16:16:01
Вообще да, просто цели интересуют

Сикп например почитать стоит имхо

Тёма
22.01.2018
16:16:45
Плагины для емакса сами себя не напишут.

Index
22.01.2018
16:16:46
В Лиспы валят тупо всё с S-exp, это настолько широкая категория, что ничего нельзя сказать про них толкового.

Вот да. Emacs Lisp придется изучить хочется того или нет.

Anton
22.01.2018
16:17:28
Тёма
22.01.2018
16:17:31
А знаешь elisp, считай, выучил CL какой-никакой.

Index
22.01.2018
16:17:41
А в Racket говорят система макросов клёвая, но я никогда не использовал. Советую посмотреть доклад Alexis King про Hackett (с 2016), там демка впечатляет.

https://www.youtube.com/watch?v=TfehOLha-18

Yuriy
22.01.2018
16:22:41
разве кому-то нужны плагины для Емакса? есть же текстовые редакторы

Alister
22.01.2018
16:23:14
я оканчиваю ВУЗ и полвуза работаю миморубистом. я уже вышел на уровень осознания собственного говнокодерства, но еще не полностью знаю как из него выбираться. изучение lisp и сопутствующих MOOCов поможет руки и сознание выпрямить?

Тёма
22.01.2018
16:25:31
разве кому-то нужны плагины для Емакса? есть же текстовые редакторы
Ну вот когда напишут Proof General, agda-mode и org-mode под имя-вашего-модного-редактора-на-электроне-2018, тогда и поговорим. ?

Alister
22.01.2018
16:27:01
я вообще вим юзаю

спейсмакс неасилил

kana
22.01.2018
16:31:10
Да, спейсмакс чет сложный после вима

Тёма
22.01.2018
16:31:14
я оканчиваю ВУЗ и полвуза работаю миморубистом. я уже вышел на уровень осознания собственного говнокодерства, но еще не полностью знаю как из него выбираться. изучение lisp и сопутствующих MOOCов поможет руки и сознание выпрямить?
Нет, не поможет. Но поможет понять что не так с Руби. Матцумото же вдохновлялся елиспом, даже хуже. Ну поймешь происхождение интересныех конструкций типа ?a , catch / throw и тп.

kana
22.01.2018
16:31:20
И вообще имакс чет сложный

A64m
22.01.2018
16:31:34
Лиспа нет
CL и есть лисп

Тёма
22.01.2018
16:31:52
CL не такой ужас
Разумеется. Взять хотя бы неймспейсы.

Ладно, не буду оффтопить.

Тёма
22.01.2018
16:38:28
думаю кэтч/троу скорееиз смолтолка вообще не знал что там елисп был в списке вдохновений
Не, я говорю про http://www.lispworks.com/documentation/lw50/CLHS/Body/s_catch.htm Или https://ruby-doc.org/core-2.5.0/Kernel.html#method-i-throw

Страница 757 из 1551