- 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-синтаксис впихнуть?
По этой же причине нету тренарника там
Искуственное выпиливание полезного функционала ради призрачных упращений как по мне
Это какой-то монстр, так можно сказать что он и в котлине есть
if (foo) bar else baz
Зачем было плодить лишние сущности я не понимаю...
функции можно было легки выпилить заменив на гоуту
бидон
джопас
В питоне же нельзя "обратиться" к лямбде из ее же тела на создавая переменную?
гнидо вообще не любил лямбд, говорил нужно явно делать функции
Кстати, например в 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:
Скажем, в "руби" принято матчиться по
* регуляркам
* ренджам
* флип-флопам (стейтфул оператор из перла)
В котлине тоже можно матчиться по ренджам, но есть там и классический матчинг, по типу.
Причем там во-первых смарт-каст, а во-вторых если класс оморскокоченный (sealed) то коко проверяет, что свитч твой экзостед
Ах ды, чуть не забыл1 Груви всех уделал
В итоге это работает как последовательная цепочка if'ов?
> case { it instanceof Integer && it < 50 }:
А это уж точно аналог if с говносинтаксисом.
ахахахахах