# <span class="fa-stack"><i class="fa-solid fa-circle fa-stack-2x"></i><i class="fa-solid fa-robot fa-stack-1x fa-inverse"></i></span> Example - :fa fa-terminal: In Scala 3, implement a function to add two integer numbers. * :fa fa-comment-dots: ```scala def add(a: Int, b: Int): Int = { a + b } ``` * :fa fa-bolt-lightning: [Is this really a function or rather a method?](https://docs.scala-lang.org/tour/basics.html#methods) ---
# <span class="fa-stack"><i class="fa-solid fa-circle fa-stack-2x"></i><i class="fa-solid fa-book fa-stack-1x fa-inverse"></i></span> Curried Methods <div class="grid grid-cols-2 gap-4"> <div> ```scala def add(x:Int)(y:Int) = x+y add(11)(21) ``` </div> <div> ```scala add: (x: Int)(y: Int)Int res: Int = 32 ``` </div> </div> - This is a [curried](https://en.wikipedia.org/wiki/Currying) definition - It is a _method_ that - Takes an Int - Returns a method of type `(y:Int)Int` - So together the type of the method is `add2: (x:Int)(y:Int)Int` ---
# <span class="fa-stack"><i class="fa-solid fa-circle fa-stack-2x"></i><i class="fa-solid fa-book fa-stack-1x fa-inverse"></i></span> Functions <div class="grid grid-cols-2 gap-4"> <div> ```scala val add = (x:Int, y:Int) => x+y add(11, 21) ``` </div> <div> ```scala add: (Int, Int) => Int = $$Lambda$4576/0x00000008018d1840@6ae4d2ad res: Int = 32 ``` </div> </div> - This is a _function_ that - Takes a pair of `Int`s - Returns an `Int` ---