diff options
| author | Abigail <abigail@abigail.be> | 2021-10-12 17:12:44 +0200 |
|---|---|---|
| committer | Abigail <abigail@abigail.be> | 2021-10-12 17:12:44 +0200 |
| commit | a171f3059aa3db3326db24f173e4e1b160be87de (patch) | |
| tree | 8d5cdb8ce2a567f882491a401f2354f72f8701b9 | |
| parent | 33819bebf28fc8ac058118c558b15fb4a1f005e1 (diff) | |
| download | perlweeklychallenge-club-a171f3059aa3db3326db24f173e4e1b160be87de.tar.gz perlweeklychallenge-club-a171f3059aa3db3326db24f173e4e1b160be87de.tar.bz2 perlweeklychallenge-club-a171f3059aa3db3326db24f173e4e1b160be87de.zip | |
m4 solution for week 134
| -rw-r--r-- | challenge-134/abigail/README.md | 1 | ||||
| -rw-r--r-- | challenge-134/abigail/m4/ch-1.m4 | 25 |
2 files changed, 26 insertions, 0 deletions
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 |
