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



  1. Перебор перестановок на Rust с самым простым синтаксисом:
    данные пользователя хранятся в векторах, в самом скрипте.

  2. Стартовый скрипт на Bash создаёт копию основной программы, забирает аргументы командной строки, создаёт новые векторы
    и перезаписывает их в основной программе с помощью sed.
    Безопасно и просто.
    Результат:
    https://github.com/dcc0/permutations_rust









 ,






URL записи