- Learning Scala Programming
- Vikash Sharma
- 212字
- 2021-06-30 19:07:55
Recursion
Recursion is a function's call to itself. In simple words, a recursive function is a function which calls itself. Functional programming recommends use of recursion over the use of iterative looping constructs. For the same obvious reasons, Scala also recommends use of recursion. Let's first take a look at a recursive function:
object RecursionEx extends App {
/*
* 2 to the power n
* only works for positive integers!
*/
def power2toN(n: Int): Int = if(n == 0) 1 else 2 * power2toN(n - 1)
println(power2toN(2))
println(power2toN(4))
println(power2toN(6))
}
The following is the result:
4
16
64
We've defined a function power2toN which expects an integer n, checks for n value and if it's not 0, the function calls itself, decrementing n integer's value till the number n becomes 0. Then comes multiplying the value with 2 with each recursive call to get the desired result.
Consider the following:
def power2toN(n: Int) = if(n == 0) 1 else (2 * power2toN(n - 1))
The Scala compiler gives an error stating Recursive method power2N needs result type. This is a required condition by the Scala compiler. We have to explicitly define the response type of a recursive function—that's the reason we have to give the return type with the method definition.
- Practical Data Analysis Cookbook
- Java面向對象軟件開發
- PyTorch自動駕駛視覺感知算法實戰
- Building a Game with Unity and Blender
- Oracle Database In-Memory(架構與實踐)
- AngularJS Web Application Development Blueprints
- 數據結構(Python語言描述)(第2版)
- Wireshark Network Security
- Visual FoxPro程序設計
- 零基礎學Python網絡爬蟲案例實戰全流程詳解(入門與提高篇)
- C# 8.0核心技術指南(原書第8版)
- Microsoft Azure Storage Essentials
- Getting Started with Nano Server
- Fastdata Processing with Spark
- Getting Started with React VR