Object oriented (OO) has dominated programming design patterns for quite sometime now. In the initial stages of web development and mobile apps, the main requirement was to extract, store and present data. OO is considered ideal for this. AS move away from basic data representation and expect more from computing i.e. complex calculations, inferences, machine learning and analytics, our programming paradigm also needs to change. Functional programming (FP) could be a good candidate for leading this change.

Typically in OO paradigm, everything is an object, whereas in FP, everything is a function. In other words piece of code takes and input and gives an output without any change in the state of the machine. Computation is a just a series of function evaluations. Functional programming allows you to specify the problem rather than worry about the implementation.

Most machine learning (ML) algorithms as of date only learn parameters of a model. They fit a particular mathematical model to data and update parameters of the model as new observations come in. This restricts the power of the ML algorithms as they don’t fundamentally change the underlying model itself. This because of the OO/imperative mind set of the ML developers. FP on the other hand works with the premise the program should be able to modify itself to represent new knowledge as it learns. This gives rise to an altogether new level of machine intelligence not possible through OO/imperative mindset.

Follow