diff --git a/examples/Factorial.zwei b/examples/Factorial.zwei index e6e244b..a0de303 100755 --- a/examples/Factorial.zwei +++ b/examples/Factorial.zwei @@ -1,40 +1,43 @@ class Factorial { // Recursive definition - def factorial1(x: Int): Int = - if (x == 0) 1 - else x * this.factorial1(x - 1); + Int factorial1(Int x) { + return if (x == 0) 1 + else x * this.factorial1(x - 1) + } // Tail-recursive definition - def factorial2_aux(x: Int, acc: Int): Int = - if (x == 0) acc - else this.factorial2_aux(x - 1, acc * x); - def factorial2(x: Int): Int = - this.factorial2_aux(x, 1); + Int factorial2_aux(Int x, Int acc) { + return if (x == 0) acc + else this.factorial2_aux(x - 1, acc * x) + } + Int factorial2(Int x) { + return this.factorial2_aux(x, 1) + } // Iterative definition - def factorial3(x: Int): Int = { - var p: Int = 1; + Int factorial3(Int x) { + Int p = 1; while (x > 0) { - set p = p * x; - set x = x - 1; + p = p * x; + x = x - 1; } - p - }; + return p + } } class Example { - def main(): Null = { - var fac: Factorial = new Factorial(); - var x: Int = 5; + Null main() { + Factorial fac = new Factorial(); + Int x = 5; printInt(fac.factorial1(x)); printChar(10); printInt(fac.factorial2(x)); printChar(10); printInt(fac.factorial3(x)); printChar(10); - }; + } } new Example().main()