@haskellru

Страница 1531 из 1551
Oleg
19.10.2018
10:19:00
Ограничения синтаксиса, это когда ты не пишешь нормальный код, даже если можешь, потому что ппц синтаксис говно

Изоморфно оно изоморфно, но я то не транслятор, а глупая бионейронка

Андрей
19.10.2018
10:19:50
так несколько раз упоминал выше - напиши свой транслятор в свой синтаксис. 21 век на дворе

Oleg
19.10.2018
10:21:47
Я напишу, почему-то сложно заставить его остальным поддерживать и подсвечивать, читать и отлаживать. А ещё требуют какие-то денотационные и трансляционные семантики на бумаге описать. Фу

Google
Index
19.10.2018
10:21:58
вы так говорите, как будто не подозреваете, что можно тот же хаскель изоморфно отобразить на лисп-синтаксис ) демонстрируете вышеупомянутый блаб-парадокс в чистом виде
Можно, только нужно будет ввести ключевые слова, например \x -> x надо будет представить как (lam (x) (x)) и вот если это в итоге для макросов тупо представить как дерево data AST = Lam | V String | Node [AST] Node [Lam, V “x”, V “x”] то тогда для того, чтобы понять, что первый “x” это binding occurrence, а второй на него ссылается, то нужно будет инспектить ключевое слово в начале

А в нормальном синтаксическом дереве это было бы data Expr = Lam Pat Expr | …

И с таким деревом лисповые скобки это просто просранная нотация

Так в чем там ее смысл тогда?

Andrei
19.10.2018
10:25:35
А Elm позволяет легко и по быстрому вкатиться. А потом пациенту может захотеться функциональщины посерьёзней.
кстати хороший пойнт. т.к. те, кому не захочется, всё равно не целевая аудитория онтопика.

Index
19.10.2018
10:27:31
Так он и есть уродский, о чем речь-то?

Столько фич в ASCII впихать — никто нормально не сделает.

a + b = … это мы оператор объявили a ! b = … а это на самом деле “a" функция, а "b" это строгий аргумент, т.е. a (!b) = …

Если BangPatterns включить.

При том, что ! это все-таки оператор. Но вот его определить можно только как (!) a b = ...

Или выключив BangPatterns в модуле определения.

Google
Index
19.10.2018
10:33:50
Agda

A64m
19.10.2018
10:49:46
это все только для разработчика парсера тяжело, а человек-то нормально читает уродство в хаскеле это (из ходового) 1) ду-нотация 2) семейства

Index
19.10.2018
10:54:13
Человек напишет a + b = … a ! b = ...

Только первое сработает, а второе нет.

Это не инженерная проблема, а проблема спецификации.

Если б еще сделать это whitespace sensitive, то можно было бы жить, типа bang pattern должен вполтную прилегать, иначе это оператор.

Alexander
19.10.2018
10:55:26
close enough
хаскель то тоже плохой

почему-то искатели токсичности считают, что хаскелисты считают всех кроме себя дурками

A64m
19.10.2018
10:55:56
проблема реальная, но не особо важная, ну сколько люди оператор ! объявляют? c теми же отрицательными литералами проблема куда хуже

Alexander
19.10.2018
10:56:01
но "кроме себя" это ж лишнее

A64m
19.10.2018
10:56:22
но, конечно, надо было с самого начала делать чтоб банги писались без пробела с паттерном

Andrei
19.10.2018
10:56:42
хаскель то тоже плохой
это уровень плохости, недостижимый мейнстримом

Index
19.10.2018
10:56:44
Ну если кто-то пропозал сделает такой, то можно и реализовать.

Думаю, даже не слишком трудно.

A64m
19.10.2018
10:57:04
такой пропозал не пройдет

Index
19.10.2018
10:57:20
Для type applications же сделали whitespace-sensitive.

Тут чем-то отличается?

Просто не детектить ! как bang, если после него пробел

Google
A64m
19.10.2018
10:57:52
да, но банги-то 20 лет уже есть

Index
19.10.2018
10:58:08
да, но банги-то 20 лет уже есть
а as-patterns с зачатия языка

Terminator
19.10.2018
10:58:10
@iodamagistr будет жить. Поприветствуем!

Index
19.10.2018
10:58:18
Но не постеснялись и сломали их в пользу type applications

A64m
19.10.2018
10:58:59
а as-patterns с зачатия языка
да, но они по другому парсятся при включении нового расширения, а тут надо изменять старое

Index
19.10.2018
11:00:03
Можно и новое ввести, -XStickyBangPatterns

А потом сделать восьмилетний deprecation schedule для старых

Как с * сделали

A64m
19.10.2018
11:01:04
Это еще может и пройдет, но тут уже главный минус что расширение состоит примерно из ничего

Ну, восмилетный депрекейшн шедьюл это все равно что никакого

Terminator
19.10.2018
11:01:45
@strikepark будет жить. Поприветствуем!

Index
19.10.2018
11:02:23
Какие-нибудь -XNumericUnderscores ничем не лучше.

A64m
19.10.2018
11:03:13
Оно состоит из исправления синтаксиса
ну вот посмотрите как докопались до минимального пропозала "лейблы с большой буквы", там в обсуждении уже думают что бы еще добавть, а то маловато что-то

Alexander
19.10.2018
11:03:53
надо делать такие вещи частью OverqualifiedConstraints патчей

Index
19.10.2018
11:03:59
Короче, кто б запропоузил, я может и заимплеменчу.

Sticky bang patterns

A64m
19.10.2018
11:04:13
Через восемь лет жить уже не планируешь?
кем видите себя через 8 лет? трупом/инвалидом/бомжом

Index
19.10.2018
11:04:38
трупом-хаскелистом инвалидом-хаскелистом бомжом-хаскелистом

Google
A64m
19.10.2018
11:05:14
я тоже не надеюсь, что за восемь лет что-то толковое новое сделают Ж(((

Aleksey
19.10.2018
11:05:28
Можно и новое ввести, -XStickyBangPatterns
Я бы ещё @ в тайпаппликейшнах приклеил

Index
19.10.2018
11:05:50
Ты про то, что можно писать f @ ty?

Terminator
19.10.2018
11:06:08
@true_grue будет жить. Поприветствуем!

Index
19.10.2018
11:06:23
TypeApplication сделали наоборот “отклеенным”, то есть это перед ним должен быть пробел, иначе получится as-pattern

Alexander
19.10.2018
11:06:41
a@b - at pattern

Aleksey
19.10.2018
11:06:56
as-pattern предполагает имя

А тут f @ x выглядит, как оператор

Alexander
19.10.2018
11:07:20
a@[foo] ?

Index
19.10.2018
11:07:24
или скобку, (x)@b тоже как as-pattern распарсится

Alexander
19.10.2018
11:07:24
это что?

Aleksey
19.10.2018
11:07:37
a@[foo] ?
паттерн

Я за f @T, вощм

И за обязательные пробелы вокруг операторов

A64m
19.10.2018
11:08:40
сам я обычно за закорючку, а не за ключевое слово, но вот тут не уверен, что @ лучше as

Index
19.10.2018
11:08:43
Вот пойди да напиши пропозал, если ты так видишь.

Это к Aleksey (astynax) про обязательные пробелы вокруг операторов

A64m
19.10.2018
11:09:53
кто бы написал пропозал idiom brackets

Google
Index
19.10.2018
11:10:26
Иди напиши, я сделаю. Синтаксис (| f a b |), отберем у поганых стрелок

A64m
19.10.2018
11:10:57
((x:_) as all)?
да, но можно и наоборот (это мне всегда в такой конструкции нравилось, что с обеих сторон именовать паттерн можно)

Aleksey
19.10.2018
11:11:37
Кажется, что возможны разночтения...

Но сходу не придумаю

Index
19.10.2018
11:12:06
Оставьте мне as неключевым словом, я пишу f (a:as) (b:bs) = ...

Aleksey
19.10.2018
11:12:32
as был бы полущ, чем слишком "плотный" @

Index
19.10.2018
11:13:07
Ты решил разуплотнить синтаксис

Aleksey
19.10.2018
11:13:59
(tree as (Tree @ _ @ Int _ (l as (0:_)) _)) vs tree@(Tree @ _ @ Int _ l@(0:_) _) :)

A64m
19.10.2018
11:14:16
надо реанимировать идею haskell 2

Index
19.10.2018
11:15:50
Зачем?

Aleksey
19.10.2018
11:15:58
(tree as (Tree @ _ @ Int _ (l as (0:_)) _)) vs tree@(Tree @ _ @ Int _ l@(0:_) _) :)
Оба варианта трешёвые какие-то...

A64m
19.10.2018
11:16:35
Зачем?
1) много обсуждений синтаксиса без особой заботы об обратной совместимости 2) успех сам себя не избежит

Index
19.10.2018
11:16:55
Да, больше пробелов!
Надо сделать как в Nim, где precedence количеством пробелов определяется?

Aleksey
19.10.2018
11:17:17
Нет. Нужно чтобы пробелы были, но кол-во пробелов не было значимо

Index
19.10.2018
11:17:31
> много обсуждений синтаксиса без особой заботы об обратной совместимости Если дело только в синтаксисе, то можно просто сделать расширение -XHaskell2 и другим парсером проходиться

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