- 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.
- Vue.js 3.x快速入門
- Java EE框架整合開發(fā)入門到實(shí)戰(zhàn):Spring+Spring MVC+MyBatis(微課版)
- PowerCLI Cookbook
- MATLAB 2020 從入門到精通
- Visual Basic學(xué)習(xí)手冊
- 組態(tài)軟件技術(shù)與應(yīng)用
- ASP.NET程序開發(fā)范例寶典
- Machine Learning With Go
- Hands-On Neural Network Programming with C#
- 自學(xué)Python:編程基礎(chǔ)、科學(xué)計(jì)算及數(shù)據(jù)分析(第2版)
- Distributed Computing in Java 9
- Mastering Android Studio 3
- PHP動態(tài)網(wǎng)站開發(fā)實(shí)踐教程
- CryENGINE Game Programming with C++,C#,and Lua
- 菜鳥成長之路