Alexander
закрылась
"Она утонула"
Слава
;; явно верблюды принесли
Кто-то наконец написал язык, соотвутствующий известной пародийной обложке O'Reilly
Евгений
dependent types?
Anonymous
Все косвенности, вроде newtype хаскелля или указателей С можно было бы описать в библиотеках типов
Евгений
Евгений
Назовём его hegel
Anonymous
язык в котором язык отделен от языка
Да я понимаю, но думаю можно найти границу, на которой остановиться и получить что - то интересное и полезное
Cheese
dependent types?
как я понимаю, завтипы, наоборот, основаны на идее смычки значений и типов
A64m
ньютайпы-то да, можно описать в "библиотеке", в ядре их нету.
Кабачок
Да я понимаю, но думаю можно найти границу, на которой остановиться и получить что - то интересное и полезное
Чем хаскель не подходит? Берешь и свою prelude пишешь, встроенных типов немного.
Anonymous
чего не хватает в Хаскеле?
Да я в общем любитель, хаскелл для меня хобби
Cheese
Да я в общем любитель, хаскелл для меня хобби
попробуй натянуть Хаскель на свою мечту
A64m
чего не хватает в Хаскеле?
завтипов, линейных типов, уникальных типов, row типов
Anonymous
попробуй натянуть Хаскель на свою мечту
Лучше попинаю жидкохаскелл - там что-то похожее рядышком строится
Alexander
линейные в итоге не пойдут в следующий релиз?
A64m
думаю, что не пойдут
Cheese
завтипов, линейных типов, уникальных типов, row типов
я спрашивал про отличия Хаскеля от гипотетического "отделена от ядра языка"
A64m
его не заморозили еще, но вероятность того что пойдут КРАЙНЕ мала
Alexander
Если взяться сегодня и начать писать свой Haskell Next Gen, то через года три-четыре, когда популярность оригинального Haskell вырастет в разы, а сам он превратится во второй C++, можно будет поймать волну разочаровавшихся хаскеллистов.
A64m
я спрашивал про отличия Хаскеля от гипотетического "отделена от ядра языка"
ну, в принципе, в хаскеле есть тайпчекер-плагины, так что можно приблизится к некоему добавлению типов не в ядро
Anonymous
ну, в принципе, в хаскеле есть тайпчекер-плагины, так что можно приблизится к некоему добавлению типов не в ядро
Вооот, если говорить про этот мифический язык, там потребуется язык для синтаксиса термов, язык для синтаксиса типов, метаязык для описания семантики типов. Звучит как шиза, но интересная шиза.
A64m
с такми же успехом как с плюсов разочарованных плюсистов уже лет 20 пытаются поймать?
Alexander
я бы заценил языке где типы это объекты первого класса
Alexander
с такми же успехом как с плюсов разочарованных плюсистов уже лет 20 пытаются поймать?
Если в плюсы опять не завезут модули и концепты, то я и сам разочаруюсь
Leonid 🦇
модули в плюсы никогда не завезут
Sr
я бы заценил языке где типы это объекты первого класса
Это было бы супер. Прям сказка а не мечта
Влод
я бы заценил языке где типы это объекты первого класса
расплывчатая формулировка — идрис и прочие в неё попадают
Alexander
Хотя я уже разочаровался, глядя на их тяжело больной Maybe, а вот Александреску еще топит за еще более тяжело больной Either. Будь моя воля, я бы всех плюсовых комитетчиков отправил изучать Хаскель, с обязательной сдачей экзаменов по монадам
Кабачок
Кстати, а есть языки где можно делать матчинг по типу?
Sr
расплывчатая формулировка — идрис и прочие в неё попадают
Там можно на лету создать класс и передать его в функцию?
Кабачок
Например foo acc (x -> y) = foo (x : acc) y foo acc _ = rev acc
Alexander
а что делает первая ветка?
Влод
да точно плюсы
Кабачок
Матчится по конструктору типов ->
Alexander
не когда а что
Алексей
Мне что-то кажется, что на lisp может запилить свои типы и прочее
A64m
Матчится по конструктору типов ->
т.е. в аккумуляторе список типов?
A64m
и вся функция над типами?
Кабачок
+
Кабачок
List Type -> Type -> List Type
Alexander
а, ну это и есть первоклассные типы
Alexander
когда конструктор типа - частный случай конструктора значения
A64m
в нормальной омеге должно быть можно, в хаскеле проблемы с кривыми семействами
Кабачок
В Идрисе так тоже нельзя, значит ли это, что там нету омеги? А может я просто не умею.
A64m
можно нормально только для конкретных типов писать вроде Int -> Bool -> Int без параметров
A64m
не знаю, насчет идриса
A64m
должно быть можно
Евгений
завтипов, линейных типов, уникальных типов, row типов
Уникальные делаются из линейных одним Maybe
A64m
не все так просто
A64m
вроде там минимум переиспользован
A64m
фпкомплит открывала исходники большей части этой иде, но никто ее до юзабельного состояния так и не довел
A64m
вроде вот она https://github.com/fpco/ide-backend
A64m
intero происходит от экспериментального форка ghci, ghci-ng или как он там назывался
Alexander
а для неофитов - чем они больны?
Там внутри куча ненужного хлама, который убирается инстансами монады и нижележащих классов, через которые выражается все, что нужно. Но монад в плюсах нет, концепты не принимают в стандарт, и разные люди в разных пропозалах продолжают тащить в язык всякие друг с другом слабо совместимые вещи. Сколько от ФП взяли, оно все кривое, неконсистентное. Генеричные лямбды почти неюзабельны, так как вывод типов постоянно ломается. Поэтому они ненастоящие, а темплитных лямбд не сделать.
Слава
"Вот уже пожарные прислонили лесенку, потому что с корешем мы орали песенку"
A64m
так там же есть линковский синтаксис чтоб такую лесенку убрать
Слава
так там же есть линковский синтаксис чтоб такую лесенку убрать
Я боюсь, что на том синтаксисе Resharper бы окончательно повесился
Alexander
Обратите внимание на красоту лесенки и на Either вверху. Это функциональщики написали Language.Ext для C#. Боюсь, С++ они тоже не улучшат.
Что-то жесть. В C# есть Linq с монадическим flatMap, можно было попробовать враппер какой-нибудь написать
Слава
Что-то жесть. В C# есть Linq с монадическим flatMap, можно было попробовать враппер какой-нибудь написать
Ну вот - не написали. Тут уже я и прочие разработчики виноваты, признаю. Однако, от лесенок избавились куда проще - убрали это из проекта совсем. Слава богу, что я там больше не работаю.
Слава
А где ты теперь работаешь?
Сейчас нигде - ну, почти. Есть некий интеграционный проект на амазоне, который надо писать, попутно делая вид, что знаешь амазоновские сервисы. Я и пишу.
Alexander
Ну, на самом деле, на плюсах монадический код писать так же приходится. Через цепочку байндов. Что поделать, do-нотация - это удел избранных языков. В C++ 30 какой-нибудь завезут, ага
Anonymous
PureScript by Example by Phil Freeman - таким образом уже неактуальна?
Дима
Ну главы про эффекты можно пропускать
Дима
А так чего
Зигохистоморфный
PureScript by Example by Phil Freeman - таким образом уже неактуальна?
чего? все ок, просто не надо квалифицировать лейблами эффекты
Anonymous
Ее мое, меня этим пурса и заинтересовала
Дима
Ну кто ж знал