A64m
ведь если можно часть стандартной библиотеки импортировать, а часть нет, получается языки то разные
Vasiliy
лично у меня это вызывает больше проблем, чем расширенияя и прагмы
Anonymous
Евгений
Anonymous
ну замечатльно. теперь начались риторические приемы с путанием понятий. Вы отличаете синтаксис языка от выбора стандартной библиотеки? @A64m_qb0
A64m
Anonymous
Anonymous
по поводу Лиспа я уже высказался
A64m
в хаскеле синтаксис добавляется в определеной версии, да его можно выключать -включать
A64m
ну так что?
A64m
да чего-там, в окамле кастомный синтаксис делается
Anonymous
по моему, Вы просто пытаетесь съехать с темы
A64m
A64m
да я на нее наехать еще не могу
A64m
я вообще не понимаю, в чем проблема-то?
Anonymous
Вы ее не замечаете, я уже понял :)
Vasiliy
поддерживает обратное
честно говоря, не вижу проблемы. поначалу <$> читается сложнее, чем fmap, <> читается сложнее, чем mappend, но со временем это всё усваивается
A64m
мне трудно ее вообразить даже. Т.е. вот сегодня я учу диалект хаскеля в котором лямбдакейс включен, а традиционный синтаксис для рекордов выключен. А завтра буду учить в котором параллел-компрехеншенс включены. и после этого останется выучить еще 4326565245 хаскелей
Anonymous
Anonymous
Vasiliy
аналогично \x -> case x of поначалу понятнее, чем \case, но потом при виде первого варианта думаешь - ёлыпалы, зачем так много буков?
A64m
Зигохистоморфный
Anonymous
A64m
если бы их было 42659465987426594756 да, но их нет, это не "диалекты"
Anonymous
Евгений
Anonymous
я говорю что λx -> case и его sugar-coated версия само по себе не очень
Anonymous
так я не хочу воздействовать. я просто поболтать зашел. но я говорю именно то, что думаю.
A64m
кто сколько хаскелей уже выучил?
Anonymous
A64m
это то что (а) создает поблемы и (б) не решает реальных проблем.
(а) непонятно только каких кроме этой вот комбинаторой апории про хаскель, который учишь, а надо еще столько же выучить, сколько атомов во вселенной, чтоб хаскелистом стать (б) ну кроме тех которые решают линтеры, которые позволяют что-то запрещать и энфорсить это в команде
A64m
вы же можете так комбинаторно к любому языку подходить
Anonymous
Anonymous
кмк единственная проблема сейчас это малоизвестность расширений и последующая нехватка материала для изучения
A64m
да я ничего не люблю
A64m
так и будете теперь повторять про "игнорирование" после демонстрации абсурдности идеи про бразиллион диалектов?
A64m
нету никакого выбора диалектов. Реальным выбором версии языка является версия компилятора и/или версия библиотеки, если посмотреть на реальную условную компиляцию в реальных исходниках
A64m
тем более что расширения значат разное в разных версиях гхц все равно
Vasiliy
мне чот кажется, что расширения языка мешают его изучению гораздо меньше, чем сотни монад туториалов
A64m
A64m
в чем проблема "диалекта"? Он задется имплементацией, на которой бы вам хотелось свой код собирать, это надо учитывать
A64m
но в реальном хаскеле это ограничивается только версией
A64m
т.е. диалектов столько же сколько актуальных версий
A64m
допустим три
A64m
имплементация-то одна
A64m
другая проблема диалекта - они не композятся. К примеру вы не можете использовать одновременно фичи лази рекета и тайптд рекета
Alexander
или сознательно используете свою понятийную систему, что сводится к одному из трех
A64m
ну или не могли, когда я рекет смотрел
A64m
такого в хаскеле тоже нет, расширения совмещаются
Vasiliy
не все
Vasiliy
я не могу вспомнить, но на том докладе, что я выше упоминал, Брагилевский приводил конкретные примеры
кана
Выше говорили, что не совмещаются
A64m
ну те прагмы, которые включают другие прагмы не совмещаются с теми что их выключают
Aleksei (astynax)
Не совмещаются в одном модуле, обычно. В пределах одной многомодульной программы - запросто
A64m
в таком смысле разве что
Vasiliy
причём не совмещаются непредсказуемым образом - например, никто не знает, как поведут себя MPTC и FunDeps вместе с TypeFamilies
Anonymous
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
т.е. нельзя просто включить все