Introduction
This lab will test your understanding of recursive functions in Golang.
This lab will test your understanding of recursive functions in Golang.
The sum
function takes an integer slice and returns the sum of all the integers in the slice. However, the function is incomplete and needs to be implemented using recursion.
sum
function must be implemented using recursion.$ go run recursion.go
5040
13
There is the full code below:
// Go supports
// <a href="https://en.wikipedia.org/wiki/Recursion_(computer_science)"><em>recursive functions</em></a>.
// Here's a classic example.
package main
import "fmt"
// This `fact` function calls itself until it reaches the
// base case of `fact(0)`.
func fact(n int) int {
if n == 0 {
return 1
}
return n * fact(n-1)
}
func main() {
fmt.Println(fact(7))
// Closures can also be recursive, but this requires the
// closure to be declared with a typed `var` explicitly
// before it's defined.
var fib func(n int) int
fib = func(n int) int {
if n < 2 {
return n
}
// Since `fib` was previously declared in `main`, Go
// knows which function to call with `fib` here.
return fib(n-1) + fib(n-2)
}
fmt.Println(fib(7))
}
In this lab, you were tasked with implementing the sum
function using recursion. Recursion is a powerful tool that can simplify complex problems by breaking them down into smaller sub-problems. By completing this lab, you should now have a better understanding of how to use recursion in Golang.