Я пишу на встроенном языке JS.
Я хочу иметь возможность вызывать три функции в любом порядке. (ABC, ACB, BAC, BCA, CBA, CAB.)
Хитрость? Язык не имеет пользовательских функций.
У него есть условная и циклическая конструкция.
Я думаю, у меня есть три варианта.
- Дублируйте целую связку кода.
- Напишите препроцессор (который будет создавать весь дублированный код).
- Выполните цикл с тремя итерациями, используя массив для управления тем, какая функциональность вызывается при каждом проходе цикла.
Я ненавижу №1. Дублированный код неприятен. Как мне что-то изменить, не облажавшись?
Полагаю, №2 в порядке. По крайней мере, у меня нет дублированного кода в исходном коде. Но мой выходной код - это то, что я буду отлаживать, и мне интересно, хочу ли я от него отклониться. С другой стороны, я мог бы добавить сахар к языку.
Я думаю, что моя лучшая ставка - # 3.
Есть еще идеи? Там нет goto. Нет функций. Нет существующего препроцессора.
Забавная вещь о # 3 в том, что это по сути печально известный кошмар для / switch.