Functional Programming is becoming increasingly popular because it offers an attractive method for exploiting parallelism for multicore and cloud computing. As the name indicates functional programming focuses on the functions. A functional programming language is one which does not have mutable variables, assignments, loops, and other imperative control structures. Some of the important functional programming languages are Lisp, Scheme, Racket, Clojure SML, Ocaml, F# Haskell (full language) Scala Smalltalk, Ruby (!) REPL(Read-Eval-Print) An interactive shell or REPL lets one write expressions and responds with their value. Scala REPL can be started by typing >scala For example; >scala 23+34 57 >scala def length = 10 length: Int >scala def breadth = 20 breadth: Int >scala length*breadth 200 Parameters and Return type in def Definition may consist of parameters. Sometimes return types are also specified in the definition....