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

Ещё к вопросу о нытье: интересно, почему у |> такой

высокий приоритет? А то из-за необходимости лишних скобок каждый раз задумываешься, стоит ли его использовать.

А ещё реально выбешивает unexpected comma. Parentheses are required to solve ambiguity in nested calls.

This error happens when you have nested function calls without parentheses. For example:

one a, two b, c, d
Это они принципиально, или у них там "дыра" в парсере, не позволяющая этот случай "по дефолту" разрулить?

Прошу прощения, накопилось. Больше не буду, обещаю☺️

1 ответов

12 просмотров

Предположим, что у вас есть функции one/2, one/3, two/2 и two/3. Как компилятор бы разрулил такую ситуацию? Как one(a, two(b, c, d))? Или one(a, two(b, c), d)? Оба варианта валидны, и, даже, могут отработать с различной степенью правильности. Компилятор действительно может зафорсить какой-то порядок применение аргументов, но _зачем_? В другой подобной ситуации, и я могу вам это гарантировать, вам понадобится другой порядок применения аргументов. И мы скатываемся опять же к проблеме неуверенности в правильности тех или иных конструкций в языке, считай, твоём инструменте. И зачем все это? Чтобы в среднем писать так, как хочется вам, но иногда отходить от однородности стиля написанного вами кода? Как выше отметили, это неуважение к коллегам. Если их нет, ок - каждый "пишет" как хочет. Только с высокой вероятностью ваш код от такого не станет более поддерживаемым даже вами в обозримом будущем. Компилятор проявляет неуважение лично к вам? Но ведь языков, благо, огромное количество. Не нравится - не пользуйтесь. Только дефолты для среды Elixir были выбраны не глупыми людьми, и были продиктованы не только хотелками, но и ограничениями, которые накладываются при включении других, _более_ важных, как показалось разработчикам языка, фич, чем ненужное в данном случае опускание скобок.

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

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта