Ricorsione

Ricorsione #

// Go supporta le [Funzioni ricorsive](https://it.wikipedia.org/wiki/Algoritmo_ricorsivo)
// Ecco il classico esempio di una funzione ricorsiva, il fattoriale.

package main

import "fmt"

// Questa funzione `fact` invoca se stessa fin quando
// non raggiunge il caso base per `n` uguale a `0`.
func fact(n int) int {
    if n == 0 {
        return 1
    }
    return n * fact(n-1)
}

func main() {
    fmt.Println(fact(7))
}
$ go run recursion.go 
5040