A64m
ведь если можно часть стандартной библиотеки импортировать, а часть нет, получается языки то разные
Vasiliy
лично у меня это вызывает больше проблем, чем расширенияя и прагмы
Anonymous
\x -> case x of читается труднее, чем \case?
труднее чем разделение на фунцкии
Евгений
Anonymous
ну замечатльно. теперь начались риторические приемы с путанием понятий. Вы отличаете синтаксис языка от выбора стандартной библиотеки? @A64m_qb0
Vasiliy
труднее чем разделение на фунцкии
а лямбдакейс не мешает бить код на функции
Anonymous
в языках с макросами - ничем
разве мы говорим о языках с макросами? лол
Anonymous
по поводу Лиспа я уже высказался
A64m
в хаскеле синтаксис добавляется в определеной версии, да его можно выключать -включать
A64m
ну так что?
A64m
по поводу Лиспа я уже высказался
ну вот есть язык такой Немерле - никакой не лисп, но там синтаксис может быть в библиотеке
Anonymous
в хаскеле синтаксис добавляется в определеной версии, да его можно выключать -включать
то, что разные версии компилятора поддерживают разные версии языка - это не новость. но это не имеет отношения к осуждаемой проблеме.
A64m
да чего-там, в окамле кастомный синтаксис делается
Anonymous
по моему, Вы просто пытаетесь съехать с темы
A64m
да я на нее наехать еще не могу
A64m
я вообще не понимаю, в чем проблема-то?
Anonymous
Вы ее не замечаете, я уже понял :)
Vasiliy
поддерживает обратное
честно говоря, не вижу проблемы. поначалу <$> читается сложнее, чем fmap, <> читается сложнее, чем mappend, но со временем это всё усваивается
A64m
мне трудно ее вообразить даже. Т.е. вот сегодня я учу диалект хаскеля в котором лямбдакейс включен, а традиционный синтаксис для рекордов выключен. А завтра буду учить в котором параллел-компрехеншенс включены. и после этого останется выучить еще 4326565245 хаскелей
Vasiliy
аналогично \x -> case x of поначалу понятнее, чем \case, но потом при виде первого варианта думаешь - ёлыпалы, зачем так много буков?
Anonymous
что именно я проигнорировал?
то, что "4326565245 хаскелей" это проблема.
A64m
если бы их было 42659465987426594756 да, но их нет, это не "диалекты"
Anonymous
если бы их было 42659465987426594756 да, но их нет, это не "диалекты"
а вот это то, что я назвал "игнорированием" :)
Anonymous
я говорю что λx -> case и его sugar-coated версия само по себе не очень
Anonymous
так я не хочу воздействовать. я просто поболтать зашел. но я говорю именно то, что думаю.
A64m
а вот это то, что я назвал "игнорированием" :)
и что кто-то так действительно учит хаскель как я сказал выше? Нет, изучает основы, потом отдельные фичи
A64m
кто сколько хаскелей уже выучил?
Vasiliy
я говорю что λx -> case и его sugar-coated версия само по себе не очень
а, ну если речь об этом, то, насколько я знаю, case - единственный способ выяснить конструктор терма
A64m
это то что (а) создает поблемы и (б) не решает реальных проблем.
(а) непонятно только каких кроме этой вот комбинаторой апории про хаскель, который учишь, а надо еще столько же выучить, сколько атомов во вселенной, чтоб хаскелистом стать (б) ну кроме тех которые решают линтеры, которые позволяют что-то запрещать и энфорсить это в команде
A64m
вы же можете так комбинаторно к любому языку подходить
Anonymous
(а) непонятно только каких кроме этой вот комбинаторой апории про хаскель, который учишь, а надо еще столько же выучить, сколько атомов во вселенной, чтоб хаскелистом стать (б) ну кроме тех которые решают линтеры, которые позволяют что-то запрещать и энфорсить это в команде
(а) продолжаете игнорировать, это заметно; (б) линтеры и энфорсить - это способ решать проблемў, которую само существование разных расширений создает, а не решает. а Вас в голове все вверх ногами. может Вы еще и С++ любите? 😮
Anonymous
кмк единственная проблема сейчас это малоизвестность расширений и последующая нехватка материала для изучения
A64m
да я ничего не люблю
A64m
так и будете теперь повторять про "игнорирование" после демонстрации абсурдности идеи про бразиллион диалектов?
Anonymous
вы же можете так комбинаторно к любому языку подходить
обсуждается не столько язык, сколько архитектурное решение разработчиков ghc положить в основу выбора иалектов комбинацию расширений, а не фиксированную версию.
A64m
нету никакого выбора диалектов. Реальным выбором версии языка является версия компилятора и/или версия библиотеки, если посмотреть на реальную условную компиляцию в реальных исходниках
Anonymous
так и будете теперь повторять про "игнорирование" после демонстрации абсурдности идеи про бразиллион диалектов?
я пока не вижу, чтобы Вы что-то продемонстрировали. продемонстрируйте, например, какую реальную проблему решает существование расширений.
A64m
тем более что расширения значат разное в разных версиях гхц все равно
Vasiliy
мне чот кажется, что расширения языка мешают его изучению гораздо меньше, чем сотни монад туториалов
A64m
я пока не вижу, чтобы Вы что-то продемонстрировали. продемонстрируйте, например, какую реальную проблему решает существование расширений.
никаких моих проблем они точно не решают, но разговор вроде про выдуманную проблему, которую они якобы создают
A64m
в чем проблема "диалекта"? Он задется имплементацией, на которой бы вам хотелось свой код собирать, это надо учитывать
A64m
но в реальном хаскеле это ограничивается только версией
A64m
т.е. диалектов столько же сколько актуальных версий
A64m
допустим три
A64m
имплементация-то одна
Alexander
то, что "4326565245 хаскелей" это проблема.
я не игнорирую, я считаю, что говоря 43265.. хацкелей вы ошибаетесь, не понимаете или лжете
A64m
другая проблема диалекта - они не композятся. К примеру вы не можете использовать одновременно фичи лази рекета и тайптд рекета
Alexander
или сознательно используете свою понятийную систему, что сводится к одному из трех
A64m
ну или не могли, когда я рекет смотрел
A64m
такого в хаскеле тоже нет, расширения совмещаются
Vasiliy
не все
Vasiliy
я не могу вспомнить, но на том докладе, что я выше упоминал, Брагилевский приводил конкретные примеры
кана
Выше говорили, что не совмещаются
A64m
ну те прагмы, которые включают другие прагмы не совмещаются с теми что их выключают
Aleksei (astynax)
Не совмещаются в одном модуле, обычно. В пределах одной многомодульной программы - запросто
A64m
в таком смысле разве что
Vasiliy
причём не совмещаются непредсказуемым образом - например, никто не знает, как поведут себя MPTC и FunDeps вместе с TypeFamilies
A64m
они могут быть включены одновременно, могут быть использованы соовместно, но существуют незакрытые баги и какого-то взаимодействия фич. Вообще в сложных языках бывает сложное или там ошибочное взаимодействие разных фич
Anonymous
#lang racket просто реквайрит модуль racket
A64m
кода в котором используются и mptc c фундепами и семейства куча, они почти всегда совместно и используются, т.е. проблема явно надуманная
A64m
разве
нет не могли, в одном модуле два языка не включались, не знаю как сейчас
Anonymous
#lang racket (require typed/racket) (: x Number) (define x 7)
Anonymous
работает
Vasiliy
я, если что, от балды написал, конкретно что с чем не сочетается, я сказать не могу :)
Aleksei (astynax)
#lang blabla может переопределить ридер, и новый ридер не обязан быть обратно совместимым с racket
Anonymous
конечно если у языка свой парсер то это не будет работать
A64m
ну да
Alexander
Выше говорили, что не совмещаются
не так и много несовместимых
Alexander
т.е. нельзя просто включить все