From a57aaf764a744e4139e84ee9dc56ec2c221bd665 Mon Sep 17 00:00:00 2001 From: Scarlett Date: Tue, 6 May 2025 18:10:06 -0400 Subject: [PATCH] =?UTF-8?q?factorial=20=F0=9F=A6=96=F0=9F=A6=96?= =?UTF-8?q?=F0=9F=A6=96=F0=9F=A6=96=F0=9F=A6=96=F0=9F=A6=96=F0=9F=A6=96?= =?UTF-8?q?=F0=9F=A6=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/programs/factorial.alpha | 42 ++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 tests/programs/factorial.alpha diff --git a/tests/programs/factorial.alpha b/tests/programs/factorial.alpha new file mode 100644 index 0000000..4f02932 --- /dev/null +++ b/tests/programs/factorial.alpha @@ -0,0 +1,42 @@ +#include "std.alpha" + +function entry: string2integer +function calc: integerXinteger2integer + +calc(counter, result) := { + + if ( counter = 0 ) then { + return result; + } else { + result := result * counter; + counter := counter - 1; + return calc(counter, result); + } +} + + + +entry (arg) := { + [integer: result; integer: userInput] + + result := printC('E'); + result := printC('n'); + result := printC('t'); + result := printC('e'); + result := printC('r'); + result := printC(' '); + result := printC('N'); + result := printC('u'); + result := printC('m'); + result := printC('b'); + result := printC('e'); + result := printC('r'); + result := printC(':'); + result := printC(' '); + + userInput := inI(1); + userInput := calc(userInput, 1); + result := printI(userInput); + + return 0; +} \ No newline at end of file