When you define a recursive function you must specify the type of the returned value. If you don’t do it the compilation fails.
object Program { def main(args: Array[String]):Unit = { println(factorial(4)) } def factorial(num:Int):Int = if (num==0) 1 else num*factorial(num-1) }
The following video clip explains that.