- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
// определяем приоритет операций
private int getPriority(char currentCharacter){
if (Character.isLetter(currentCharacter)) return 4;
else if (currentCharacter =='*'|| currentCharacter=='/') return 3;
else if (currentCharacter == '+'|| currentCharacter=='-') return 2;
else if (currentCharacter == '(') return 1;
else if (currentCharacter ==')') return -1;
else return 0;
}
Кстати, Гвидо где-нибудь обосновывал, почему свитч-кейс нинужен? Или он просто не осилил его в 2D-синтаксис впихнуть?
Зачем было плодить лишние сущности я не понимаю...
В питоне же нельзя "обратиться" к лямбде из ее же тела на создавая переменную?
Кстати, например в J чтобы сослаться на себя в тацитном определении без имени нужно использовать $:
А в форте вообще по имени на себя не ссылаются, потому что имя в словаре становится видимым только после завершения компиляции слова, и в именованных и в безымянных определениях для рекурсии используют слово RECURSE.
А в питоне анонимные и обычные функции объявляются разными конструкциями
В Писании для function expression, в отличии от function declaration, имя помечается как optional в рамках одного формализованного выражения (https://www.ecma-international.org/ecma-262/10.0/index.html#prod-FunctionExpression), значит синтаксис одинаковый и ниибет
Разница в том, что в JS можно написать вот так:
В питоне для этого придётся запиливать отдельную функцию где-то выше. Ну либо выражать лямбду на PythonFuck (или как эта фигня называется) и городить нечитаемый код.
Даже в C++ появились нормальные лямбды, а не это python-говно!
Такая утонченность, женственность - и тут такое... Плюм!
И то костыль, на самом деле. Лучше бы добавили что-нибудь в духе case 1..3, 5:
В итоге это работает как последовательная цепочка if'ов?
> case { it instanceof Integer && it < 50 }:
А это уж точно аналог if с говносинтаксисом.