Introducing functional programming

So, functional programming wants you to distribute your programming logic into small pieces of reusable declarative small and pure functions. Distributing your logic into small pieces of code will make the code modular and non-complex, thus you will be able to refactor/change any module/part of the code at any given point without any effects to other modules.

Functional programming requires some interfaces and support from the language, thus we can't say any language is functional unless it gives some sort of support to implement functional programming. However, functional programming isn't something new; it is actually quite an old concept and has several languages supporting it. We call those languages functional programming languages, and the following is a list of some of the most popular functional programming languages:

  • Lisp
  • Clojure
  • Wolfram
  • Erlang
  • OCaml
  • Haskell
  • Scala
  • F#

Lisp and Haskell are some of the oldest languages and are still used today in academia and industry. While talking about Kotlin, it has excellent support for functional programming from its first stable release in contrast to Java, which doesn't have any support for functional programming before Java 8. You can use Kotlin in both object-oriented and functional-programming style or even in a mix of two, which is really a great benefit for us. With a first-class support for features, such as higher-order functions, function types, and lambdas, Kotlin is a great choice if you're doing or exploring functional programming.

The concept of functional reactive programming (FRP) is actually a product of mixing reactive programming with functional programming. The main objective of writing functional programming is to implement modular programming; this modular programming is really helpful, or sometimes a necessity to implement reactive programming or rather to implement the four principles of the Reactive Manifesto.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.219.134.198