From 3fe9fba9c9d2ec298020988b59ddf16dade7285f Mon Sep 17 00:00:00 2001 From: Abigail Date: Wed, 9 Jun 2021 18:03:02 +0200 Subject: AWK, Bash, Lua, Node.js, Perl, Python, Ruby solutions for week 116, part 1 --- challenge-116/abigail/lua/ch-1.lua | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 challenge-116/abigail/lua/ch-1.lua (limited to 'challenge-116/abigail/lua/ch-1.lua') diff --git a/challenge-116/abigail/lua/ch-1.lua b/challenge-116/abigail/lua/ch-1.lua new file mode 100644 index 0000000000..df551a2e46 --- /dev/null +++ b/challenge-116/abigail/lua/ch-1.lua @@ -0,0 +1,39 @@ +#!/opt/local/bin/lua + +-- +-- See ../README.md +-- + +-- +-- Run as: lua ch-1.lua < input-file +-- + +function make_chain (string, start) + if string == start + then return start + end + if string : find ("^" .. start) + then tail = string : sub (#start + 1, -1) + result = make_chain (tail, tostring (tonumber (start) + 1)) + if result ~= nil + then return start .. "," .. result + end + result = make_chain (tail, tostring (tonumber (start) - 1)) + if result ~= nil + then return start .. "," .. result + end + end + return nil +end + +for line in io . lines () do + for i = 1, #line do + start = line : sub (1, i) + result = make_chain (line, start) + if result ~= nil + then print (result) + goto end_main + end + end + ::end_main:: +end -- cgit From 7e7b2cab61dcef029b71bd066bf6b5e3a71011af Mon Sep 17 00:00:00 2001 From: Abigail Date: Sun, 13 Jun 2021 21:14:34 +0200 Subject: Rename make_chain to make_sequence --- challenge-116/abigail/lua/ch-1.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'challenge-116/abigail/lua/ch-1.lua') diff --git a/challenge-116/abigail/lua/ch-1.lua b/challenge-116/abigail/lua/ch-1.lua index df551a2e46..fadad776fa 100644 --- a/challenge-116/abigail/lua/ch-1.lua +++ b/challenge-116/abigail/lua/ch-1.lua @@ -8,17 +8,17 @@ -- Run as: lua ch-1.lua < input-file -- -function make_chain (string, start) +function make_sequence (string, start) if string == start then return start end if string : find ("^" .. start) then tail = string : sub (#start + 1, -1) - result = make_chain (tail, tostring (tonumber (start) + 1)) + result = make_sequence (tail, tostring (tonumber (start) + 1)) if result ~= nil then return start .. "," .. result end - result = make_chain (tail, tostring (tonumber (start) - 1)) + result = make_sequence (tail, tostring (tonumber (start) - 1)) if result ~= nil then return start .. "," .. result end @@ -29,7 +29,7 @@ end for line in io . lines () do for i = 1, #line do start = line : sub (1, i) - result = make_chain (line, start) + result = make_sequence (line, start) if result ~= nil then print (result) goto end_main -- cgit