209 похожих чатов

Так, Миша, 🌊🌊🌊 let in 2 это синтаксический сахар какой записи? :)

24 ответов

50 просмотров

больше двух говорят вслух о чем речь?))

Maxim-Zelensky Автор вопроса
Andrey Kozlenok
больше двух говорят вслух о чем речь?))

так всё о том же :):) есть в спецификации упоминание, что let a = 1, b = a*2 in b это синтаксический сахар выражения [a=1, b=a*2][b] ну вот я решил пофлудить ещё раз на эту тему :)

Maxim-Zelensky Автор вопроса
Airat Gabdrakhmanov
[2=2][2]

почему имя поля 2?

ниже пояса, так не честно )))

Maxim-Zelensky Автор вопроса
Mikhail Muzykin
ниже пояса, так не честно )))

Я не специально. Но думаю, что одно другому не противоречит. Выражение после in оценивается в имеющемся scope. Имена между let и in добавляются к внешнему scope. Непонятно только, происходит ли преобразование let .. in в запись в бэкграунде. Думаю, нет.

Maxim Zelensky
Я не специально. Но думаю, что одно другому не про...

ну ключевое - мы после in имеем право написать выражение, а в записи выражение можно поместить только в поле

Maxim Zelensky
почему имя поля 2?

ну вариант ))) [#""=2][#""]

Maxim Zelensky
Я не специально. Но думаю, что одно другому не про...

хотя вообще, глобально, в let in 2 переменные не объявлены, т.е. это просто выражение 2, предполагаю, что при оценке там должно быть [ ] и собственно поле с результатом, которое допускается писать после in просто выражением предлагаю считать это полем с именем null как в сообщении выше))) (особенно с учётом того, что в let in подобное имя недопустимо)

Maxim-Zelensky Автор вопроса
Mikhail Muzykin
хотя вообще, глобально, в let in 2 переменные не о...

Ну, пусть так. Хотя что null, что любое другое техническое имя поля мне представляется избыточным. Но если это стойнит картину syntax sugar, пусть будет. Хотя моя идея со scope выглядит не менее стройно, особенно когда вспоминаем, что для оценки запроса нам нужно список имён между let in добавить к #shared. Вот и получаем, что для оценки выражения let in 2 мы должны сделать #shared & [ ] Вот тогда и синтаксический сахар для записи (имена между let in), и иносказательное обращение к полю (оценка выражения после in) - всё на месте

Maxim Zelensky
Ну, пусть так. Хотя что null, что любое другое тех...

null - не любое, это считай отсутствие, а стройнит, поскольку сами разрабы написали, что сахар для записи, с безымянным именем оно сходится )))

[a=...,b=...,c=...] вычисляется целиком [a=...,b=...,c=...][b] вычисляется лениво

Maxim-Zelensky Автор вопроса
Mikhail Muzykin
[a=...,b=...,c=...] вычисляется целиком [a=...,b=....

Что значит целиком? Жадно? Но разве значения полей в первом варианте не вычисляются лениво? Тогда жадно вычисляется только каркас записи, если можно так сказать.

Mikhail Muzykin
[a=...,b=...,c=...] вычисляется целиком [a=...,b=....

А я всегда понимал так, что если к полям записи обращения нет, то она и вообще не вычисляется, ибо анафига?

Maxim-Zelensky Автор вопроса

насколько помню, ощутимая разница между записью и let in проявляется в обработке ошибок.

Вспомнил с чем перепутал. Аргументы функции сразу вычисляются, даже если там нафиг не нужны. Так заставлял кэшировать ответ сервера до проверки его статуса в метаданных, чтобы повторный запрос не улетал

Maxim Zelensky
Что значит целиком? Жадно? Но разве значения полей...

Это значит, что если на выход подать запись, будут вычислены все поля, я только это имел ввиду

Алексей (PooHkrd) Семилетов
А я всегда понимал так, что если к полям записи об...

Если запись является РЕЗУЛЬТАТОМ - то вычисляются, если это промежуточное вычисление - то по общим правилам ленивых. Я же написал выражение целиком, откуда появилась мысль, что это кусок чего-то большего?

Maxim-Zelensky Автор вопроса
Mikhail Muzykin
Если запись является РЕЗУЛЬТАТОМ - то вычисляются,...

Ну ты же понимаешь, что в отсутствие клиентских средств получения записи как результата трудно представить себе финальный результат запроса как запись. В том числе потому, что нет средств тестирования, ибо мы увидим таблицу 1х1 с записью в ячейке, а это уже не то же самое.

Maxim-Zelensky Автор вопроса
Илья Назаров
Вспомнил с чем перепутал. Аргументы функции сразу ...

во, нашел, здесь и ниже кучка сообщений https://t.me/PQ_ru/6589

Maxim-Zelensky Автор вопроса
Mikhail Muzykin
Нет, мы получим ТАБЛИЦУ с полями Name и Value

да, я погорячился. Но тем не менее, получим не запись же.

Похожие вопросы

Карта сайта