From 3a0ad850aa19fad89a422abe0e45989fe4448137 Mon Sep 17 00:00:00 2001 From: Abigail Date: Thu, 28 Jan 2021 12:19:18 +0100 Subject: Lua solution for week 3, part 2 --- challenge-003/abigail/README.md | 1 + challenge-003/abigail/lua/ch-2.lua | 49 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 challenge-003/abigail/lua/ch-2.lua diff --git a/challenge-003/abigail/README.md b/challenge-003/abigail/README.md index a8af310c3b..4ceda5bbbf 100644 --- a/challenge-003/abigail/README.md +++ b/challenge-003/abigail/README.md @@ -39,4 +39,5 @@ rows from the command line. The Pascal Triangle should have at least ### Solutions * [AWK](awk/ch-2.awk) * [C](c/ch-2.c) +* [Lua](lua/ch-2.lua) * [Perl](perl/ch-2.pl) diff --git a/challenge-003/abigail/lua/ch-2.lua b/challenge-003/abigail/lua/ch-2.lua new file mode 100644 index 0000000000..321d7d25d1 --- /dev/null +++ b/challenge-003/abigail/lua/ch-2.lua @@ -0,0 +1,49 @@ +#!/opt/local/bin/lua + +-- +-- See ../README.md +-- + +-- +-- Run as: lua ch-2.lua < input-file +-- + +-- +-- Create and print row 0 +-- +local row = {1} +print "1" + +-- +-- Iterate over the input +-- +for line in io . lines () do + local rows = tonumber (line) + local r + for r = 1, rows do + -- + -- Create a new row + -- + local new = {} + for i = 1, r + 1 do + sum = 0; + if i > 1 + then sum = sum + row [i - 1] + io . write (" ") + end + if i <= r + then sum = sum + row [i] + end + -- + -- Assign new element, and print it + -- + new [i] = sum + io . write (sum) + end + io . write ("\n") + -- + -- New row becomes current row + -- + row = new + end +end -- cgit