Start functional programming in Scala book

This commit is contained in:
Julien Lengrand-Lambert
2018-10-24 16:26:45 +02:00
commit 2856c814c6
2 changed files with 38 additions and 0 deletions

5
build.sbt Normal file
View File

@@ -0,0 +1,5 @@
name := "functional-programming-scala"
version := "0.1"
scalaVersion := "2.12.7"

View File

@@ -0,0 +1,33 @@
object myModule {
def abs(n: Int): Int =
if (n < 0) -n else n
def factorial(n: Int): Int = {
def fact(n: Int, acc: Int) : Int = {
if(n == 1) acc
else fact(n - 1, acc * n)
}
fact(n, 1)
}
def fibonacci(n: Int) : Int = {
def go(n:Int, prev:Int, curr: Int): Int = {
if(n == 0) prev
else
go(n-1, curr, prev + curr )
}
go(n, 0, 1)
}
private def formatAbs(x: Int) ={
val msg = "The absolute value of %d is %d"
msg.format(x, abs(x))
}
def main(args: Array[String]): Unit ={
println(formatAbs(-42))
}
}