Lua assert() + m4
В языке lua для контроля нестандартных ситуаций имеется базовая функция assert(). Очень полезная функция, однако имеет и одно неприятное свойство.
В языке lua для контроля нестандартных ситуаций имеется базовая функция assert(). Очень полезная функция, однако имеет и одно неприятное свойство.
Ну просто прелесть. Перевод из десятичной нотации в римскую.
Несмотря на все старания, я не могу запомнить число Фибоначчи. Что-то типа 0.61. Зато помню, как оно вычисляется: (sqrt(5)+1)/2. Приходится лезть в справочник или считать на калькуляторе. Потом присваивать значение переменной и уже переменную использовать в тексте. Особых проблем нет, но в эконом-классе не наливают, в иллюминаторе одни облака и надо чем-то себя занять.
Немного сахара на тему манипуляций со строками:
В qpile можно организовать цикл по текстовому списку, разделённому запятыми. Очень часто нужно бывает пробежаться по всем элементам коллекции (во многих языках есть цикл по enum). На основе макроса, приведенного выше, легко пишется оператор цикла по всем элементам коллекции:
После периода программирования на языках семейства С или Pascal/Delphi у меня постоянно возникает проблема с синтаксисом циклов на языке qpile. Чтобы наконец перестать путаться, решил изменить синтаксис и привести его к удобоваримому виду.
Во многих языках программирования имеется понятие статической переменной. В QPILE такого понятие нет. Можно попробовать создать этот механизм.
Во всех языках высокого уровня (из приличных) имеется конструкция программного блока. Например, в языке Pascal программный блок обрамляется зарезервированными словами BEGIN .. END, в языках семейства С открывающей и закрывающей фигурными скобками.
Простейшее усовершенствование. В стандартную функцию create_map можно добавить функционал необязательных параметров.