Alexander
тут тип зависит не от значения, а от типа значения
Alexander
это круто и хорошо конечно
Alexander
и лучше, чем в 90% языков
Danila Matveev
вот если бы val value =42 и val value=43 давали бы разные типы, то это уже то
вот прям так умеет компилятор в своих кишках, но в языке нет ишью висит с 2012года и уже год как обещали "вот точно добавить" есть либа shapeless, где можно это сделать двумя способами: типы натуральных чисел и синглтон типы, но это строго компайл тайм и в рантайме ничего не поделать
Alexander
ну этого все равно ж будет мало?
Alexander
ясно, спасибо за объяснения
Danila Matveev
этого сейчас не столько мало, сколько больно пользоваться очень много надо хинтов компиллятору давать, чтобы он понял происходящее, приходится погружаться в нюансы его работы для большинства муторное или пугающее занятие
Alexander
ну поидее это будет уровень haskell в лучшем случае
Alexander
где уже появились библиотеки и люди научились страдать
Alexander
и до какого-то момента это не очень отвратно выглядит
Danila Matveev
ну поидее это будет уровень haskell в лучшем случае
многое тайплевел, если не большую часть, тащут калькой с хаскелля как раз коллега делал доклад о том как он писал тайплевельную либу для генерации сваггер схемы по роутам (вдохновлялся сервантом), теперь периодически при поиске джунов слышу "а это же придется с ним работать? я такого не хочу" =)
Alexander
=)
Alexander
в скале все это менее приятно выглядит
Alexander
просто зависимые типы это не haskell это дальше
Alexander
вон недавно в очередной раз игрался тут ещё спрашивал можно ли улучшить
Alexander
это ж треш и угар
Alexander
при этом что это "ограниченные зависимые типы"
Alexander
а сервант вообще не зависимые типы, а type-level программирование
Alexander
там только путь из типов в типы и из типов в значения
Denis
на свежих синглтонах норм еще
Denis
раньше вообще жесть была
Denis
> коллега делал доклад о том как он писал тайплевельную либу для генерации сваггер схемы по роутам по роутам ничего не сгенерить же
Cheese
а я правильно понимаю, что Хаскелл — единственный язык с претензиями на завтипы, в котором в типы можно поднимать значения только богоизбранных типов? String можно, а Char — фигушки?
Denis
остальные честные в общем-то
Denis
за исключением уродливой кодировки
Denis
но это не про честность, а про удобство
Denis
а хотя в принципе норм, я и с тайп-литералами много проблем не вижу
Denis
все равно пользоваться нормально невозможно
Cheese
ну да, если не пользоваться, то и проблем не будет видно
Alexander
богоизбранных типов эффективно
Cheese
не понял
Cheese
а остальные вообще можно?
Alexander
ну своих можно через синглтоны
Alexander
просто готовые нахаляву нельзя
Cheese
как сделать тип из '©'?
Alexander
что значит "сделать тип из (c)"?
Alexander
'(c) ?
Anonymous
TypeOperators
Anonymous
data (©) = ...
Denis
“©”
Denis
data Copyrighted
Denis
ума не приложу зачем копирайт в типе и даже знать не хочется
Alexander
я вот не очень понимаю в каком виде его хочется
Alexander
как параметр типа своего кайнда тип своего кайнда или что ещё
A64m
речь, видимо, о том, что на тайплевеле нету литералов для символов
Alexander
мне показалось, что о том, что мы у нас есть строка <-> Symbol и Integre <-> Nat (или как их в TypeLits звали)
Alexander
но для других типов нету, например Char - у в соотвествие что поставить
Alexander
вон, в той штуке что я копировал я хотел Char поднимать, но т.к. его не было я свой тип вводил с перечислением интересных символов
Alexander
но это ж не совсем то
A64m
ну если бы литералы для символов были то и машинерию соотвествующую KnownChar и т.д. делали бы
Alexander
кстати обидно, что magicDict и т.п. не выставлены
Alexander
через которые литералы сделаны
Alexander
чего-то я оказывается линейные типы совсем не понимаю, то что ожидаю не работает, то что не ожидаю - работает
Alexander
блин вообще ничего не понимаю.. ну или это просто не допилено
A64m
В прошлом году видео с ICFP уже месяц как выкладывали
Anonymous
Добрый день,здесь кто-нибудь в Делфи шарит?
Евгений
@haskellru -- специалисты по всему. Ждём когда придут спрашивать как починить холодильник
Ignat
— Здравствуйте, это канал об аниме?
Alexander
в аниме тоже шарят
Aragaer
оно уже появилось в питоночате
Aragaer
но еще не в емаксочате
Alexander
кто из СПб не хотите доклад на fprpg-spb сделать?
Alexander
30 ноября
Arina
А много ожидается вообще докладов?
Alexander
я пока только один заявленный видел
Alexander
но обычно люди вконце под
Alexander
подтягиваются
Unat
Господа, а где можно посмотреть паттерны, если можно так выразиться, в качественном изложении? Не обязательно применительно к хаскеллю, в целом по ФП. А то результаты поиска выглядят либо скудно, либо практическая ценность вызывает сомнения.
Unat
Сейчас, вроде, осилил самое необходимое, но что-то всё написанное вызывает больше вопросов, чем было в начале.
Andrei
https://habrahabr.ru/post/337880/ ?
Alexander
функция высшего порядка
Alexander
вот и все паттерны
Anonymous
https://www.haskell.org/tutorial/patterns.html
Andrei
должно быть, имеется в виду что-то вроде https://www.schoolofhaskell.com/user/meiersi/the-service-pattern
Unat
Спасибо, кажется, то что надо. Если оно, конечно, не ведет по ложному пути.
A64m
ну есть паттерн интерпретатор где АлгТД - это язык, а паттерн-матчинг - интерпретатор. И соотвествующие паттерны вроде параметризации АлгТД, параметризации для исключения рекурсии и рекурсивные схемы, types a la carte, tagless final, TTG наконец