From a171f3059aa3db3326db24f173e4e1b160be87de Mon Sep 17 00:00:00 2001 From: Abigail Date: Tue, 12 Oct 2021 17:12:44 +0200 Subject: m4 solution for week 134 --- challenge-134/abigail/README.md | 1 + challenge-134/abigail/m4/ch-1.m4 | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 challenge-134/abigail/m4/ch-1.m4 diff --git a/challenge-134/abigail/README.md b/challenge-134/abigail/README.md index b96391bff6..675aa2f6b7 100644 --- a/challenge-134/abigail/README.md +++ b/challenge-134/abigail/README.md @@ -7,6 +7,7 @@ * [Befunge-93](befunge-93/ch-1.bf93) * [C](c/ch-1.c) * [Lua](lua/ch-1.lua) +* [m4](m4/ch-1.m4) * [Node.js](node/ch-1.js) * [Perl](perl/ch-1.pl) * [Python](python/ch-1.py) diff --git a/challenge-134/abigail/m4/ch-1.m4 b/challenge-134/abigail/m4/ch-1.m4 new file mode 100644 index 0000000000..35bb86b814 --- /dev/null +++ b/challenge-134/abigail/m4/ch-1.m4 @@ -0,0 +1,25 @@ +define(`com')dnl +com()dnl +com(`Macros to simulate an array. First macros fetches a value')dnl +com(`while the second macro sets a value.')dnl +com()dnl +define(`tail',`defn(format(``tail[%d]'',`$1'))')dnl +define(`tail_set',`define(format(``tail[%d]'',`$1'),`1023456$2')')dnl +com()dnl +com(`Load the "tail" array with values')dnl +com()dnl +tail_set(`5',`789')dnl +tail_set(`4',`798')dnl +tail_set(`3',`879')dnl +tail_set(`2',`897')dnl +tail_set(`1',`978')dnl +com()dnl +com(`Recursive macro to print the results from the given value')dnl +com(`down to "1". Better call it with a positive integer value')dnl +com()dnl +define(`run',`tail($1) +ifelse($1,1,,`run(eval($1-1))')')dnl +com()dnl +com(`We want five values')dnl +com()dnl +run(5)dnl -- cgit