Advanced Pattern Matching

Fibonacci

released Fri, 15 Feb 2019
Swift Version 5.0

Fibonacci

Also, see how beautiful an implementation of the fibonacci algorithm looks with pattern matching.

func fibonacci(i: Int) -> Int {

     switch(i) {

     case let n where n <= 0: return 0

     case 0, 1: return 1

     case let n: return fibonacci(n - 1) + fibonacci(n - 2)

     }

}



print(fibonacci(8))

Since we're doing recursion here, this will fail to work with sufficiently large numbers (you'll see the dreaded stack overflow error)