Интересное свойство bash/shell открыл для себя.
Решил попытаться вникнуть в язык Rust.
Для примера взял старый, измученный мной, алгоритм перебора перестановок Нараяны. Переписал его и уткнулся в то, что не так легко и элегантно новичку найти способ перевести аргумент командной строки в число. В C89 с приведением типов как-то просто.
Искал варианты: все те, что нашёл, относительно синтаксиса и на мой субъективный взгляд, показались трудными для восприятия.
Вдруг осенило меня, - можно же использовать в качестве инициализирующего скрипта bash. И появилась такая модель:
- Перебор перестановок на Rust с самым простым синтаксисом:
данные пользователя хранятся в векторах, в самом скрипте. - Стартовый скрипт на Bash создаёт копию основной программы, забирает аргументы командной строки, создаёт новые векторы
и перезаписывает их в основной программе с помощью sed.
Безопасно и просто.
Результат:
https://github.com/dcc0/permutations_rust