Обновить

Вам не кажется, что порядок агрументов в обратной польской записи нелогичен? Почему 5 - 3 в ОПЗ это 5 3 - а не 3 5 - ? Как частично применить аргумент к функции? Т.е. как сделать каррирование оператора - ? Надо применить к нему предпоследний элемент стека, т.е. стек должен состоять как минимум из двух элементов, а для частичного применения достаточно было бы, чтобы на стеке лежал только один элемент.

Конечно можно каррировить оператор не первым, а последним аргументом, т.е. частично применить 3 к - и получить функцию, которая на вход будет принимать число, и вычитать из него 3. Для оператора минус вроде всё логично. А давайте рассмотрим оператор map : (a -> b) -> List<a> если к нему частично применить некоторую функцию (a -> b), это имеет определённый смысл - мы получим функцию, к которой можно применять различные данные (списки), а если мы поступим наоборот и частично применим к map некоторый список, то мы получим довольное нелепую конструкцию - список данных, к которым можно применять разные функции.

Подозреваю, что Ян Лукасевич определил такой порядок, чтобы визуально арифметические операции выгладели похожими на привычную нам инфикцную запись, но для более сложных функций, чем арифметические операторы такой порядок вызывает некоторые неудобства.

Теги:
Всего голосов 4: ↑3 и ↓1+3
Комментарии10
ЕЖЕДНЕВНЫЙ ХАБР | 7 АВГ 2026
Охват87K

АКПП Voith не включается выше второй передачи: разбираемся в J1939

Изучаю шину CAN J1939 через написание самописных утилит. Целенаправленно отключал датчик наддува для проверки своих программ.

И здесь случай: Идёт выпуск машин на маршрут. На одном из автобусов АКПП не включается выше второй передачи. Сканера нет читать нечем. Но есть C, Linux, CANable, map_id_j1939, viz_j1939.

АКПП Voith не включается выше второй передачи: разбираемся в J1939

Публикации