Search code examples
functionscalatail-recursionpow

Scala: Tail recursive power function


I always get "1" as result. :(
Whats wrong with this function?

    def power(base: Int, exp: Int): BigInt = {
        def _power(result: BigInt, exp: Int): BigInt = exp match {
            case 0 => 1
            case _ => _power(result*base, exp-1)
        }
        _power(1, exp)
    }

Solution

  • you have to replace so: case 0 => result