Own-Programming-Language-Tu.../examples/functions/factorial.own

35 lines
561 B
Scala
Raw Normal View History

2016-02-20 10:12:26 +02:00
// Factorial
2015-07-11 21:19:59 +03:00
def factorial(n) {
if n == 1 return 1
return n * factorial(n-1)
}
print factorial(6)
print "\n"
// 0 1 1 2 3 5 8 13 21 34
def fibonacci(count) {
def fib(n) {
if n < 2 return n
return fib(n-2) + fib(n-1)
}
return fib(count)
}
2016-02-14 21:24:06 +02:00
for i = 0, i < 10, i++
2015-07-11 21:19:59 +03:00
print " " + fibonacci(i)
print "\n"
2016-02-20 10:12:26 +02:00
// Tail recursive factorial
2015-07-11 21:19:59 +03:00
def factorial_tailrec(n) {
def fact(acc, n) {
if n == 0 return acc
return fact(acc * n, n - 1)
}
return fact(1, n-1)
}
print factorial_tailrec(6)
print "\n"