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