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