examples/standalone/01_calculate.cat
#!/usr/bin/env catnip
# Calculatrice avec formules
# Usage: catnip calculate.cat
# Définir des fonctions mathématiques
# Factorielle
factorial = (n) => {
if n <= 1 { 1 }
else { n * factorial(n - 1) }
}
# Fibonacci
fib = (n) => {
if n <= 1 { n }
else { fib(n - 1) + fib(n - 2) }
}
# Puissance
pow = (base, exp) => {
if exp == 0 { 1 }
else { base * pow(base, exp - 1) }
}
# Somme d'une liste
sum_list = (lst, idx, acc) => {
if idx >= len(lst) { acc }
else { sum_list(lst, idx + 1, acc + lst[idx]) }
}
# Moyenne d'une liste
avg_list = (lst) => {
total = sum_list(lst, 0, 0)
total / len(lst)
}
# Exemples de calculs
print("Calculatrice Catnip")
print("")
print("Factorielles :")
print(" 5! = " + str(factorial(5)))
print(" 7! = " + str(factorial(7)))
print(" 10! = " + str(factorial(10)))
print("")
print("Fibonacci :")
print(" fib(10) = " + str(fib(10)))
print(" fib(15) = " + str(fib(15)))
print(" fib(20) = " + str(fib(20)))
print("")
print("Puissances :")
print(" 2^10 = " + str(pow(2, 10)))
print(" 3^5 = " + str(pow(3, 5)))
print(" 10^3 = " + str(pow(10, 3)))
print("")
print("Statistiques :")
numbers = list(10, 20, 30, 40, 50)
print(" Liste : [10, 20, 30, 40, 50]")
print(" Somme : " + str(sum_list(numbers, 0, 0)))
print(" Moyenne : " + str(avg_list(numbers)))
print("")
# Formule composée
a = 5
b = 3
c = 2
result = a * pow(b, c) + factorial(4)
print("Formule composée :")
print(" a = " + str(a))
print(" b = " + str(b))
print(" c = " + str(c))
print(" a * b^c + 4! = " + str(a) + " * " + str(b) + "^" + str(c) + " + 24")
print(" = " + str(result))
result