Skip to main content

The Promises of Functional Programming

Most of the programs that one develops as a student of computer systems are highly likely to have been designed in an imperative paradigm, since it is one of the most common ways in which it is currently programmed. However, as technological trends evolve, you also have to start contemplating other forms of programming and one of the best options that has emerged in these times is the functional programming that due to its robustness, efficiency and parallelization has become a totally viable paradigm to generate software.

It is hard to realize that in functional programming it is not essential to use variables or cycles. This is because, literally, the functions act in a mathematical sense and do not work like the routines to which we are accustomed. Even getting to have a good performance in functional programming depends on how willing we are to forget the way we program and start accepting new programming schemes.

Among the things most present in functional programming is abstraction due to the way functions are formed. Some things that seem curious are high-level functions, since these functions may contain functions that send more functions and you are in turn more functions. Understanding this type of functions takes training and practice in most cases, although it is also clear that there are people who understand this type of issues with great ease.

Finally, another of the great advantages of functional programming is concurrency and parallelism. Thanks to the computing power that currently exists, taking advantage of this is simple in functional programming because of the way it is structured.


In conclusion, functional programming can have many advantages, but it must also be analyzed under what conditions it is convenient to use it. It can be a very useful tool. However, before wanting to use some kind of paradigm for everything, one must question whether it is the best way to solve the task we are trying to complete.


Reference


Hinsen, K. (2009). The Promises of Functional Programming. Computing in Science & Engineering11(4), 86–90. doi: 10.1109/mcse.2009.129

Comments

Popular posts from this blog

Language as the “Ultimate Weapon”

The novel of 1984 is one of my favorite book because it reflect a future that can be possible in this time. In the book we read so many reference about the reality, language, war, peace, ignorance and other importante topics that currently they continue causing important repercussion in our days. Besides, George Orwell mention us what type of weapons use the government to stop the opposition and how they control the reality through the telescreen and their message to all society.  In Language as the "Ultimate Weapon" tell us an analysis about the novel of George Orwell: 1984. Without a doubt the language take an importante role in a fiction 1984, however nowadays too. It possible that the governments don't try to control our language or try to create a new weapon through of the language, but it could be kindred to the programming languages. In this blog I don't make an analysis or an opinion about the novel 1984, but I want to make a reflection about programmin...

Roots of Lisp

Lisp is part of the construction of Clojure and the programming language that it took as a reference scheme. So it is important to know which are the roots of Lisp because we will know how and why the instruction were build and for what propose.  Firstly, we will talk about the seven primitive operators. These operators work to modify lists or to convert symbols in lists. They are called primitive for their easy way to convert symbols or lists and to create new result which are more suitable. However, this not the only advantages of a functional programming language as Lisp. We can create functions that after we could detonate for specific aplicables. It is unbelievable how Lisp works, for example, creating new functions with singular seven primitive operators could be a complex activity but in some cases the only limitation is our creativity of creating new functions.  The eval functions is another great examples of how we can create a complex function with only ...

About Clojure

In this podcast we listen to Rich Hickey, the creator of Clojure, talking about which were the main characteristics about it. Clojure is an important tool and programming language because it is a dynamic program language for JVM. This advantage allows Clojure to be adaptable for any host platform, concurrency, functional and based on Lisp. Although Lisp is a simple and elegant programming language, it is not known due to that it is studied individually, contrary to what we would think about this language.  Even with these particularities, Clojure keeps being a great tool to program in. For example, we can create programs that  are writing programs, we can handle a high level of function abstraction and we can benefit from its access to all Java libraries. It could be complicate coding everything with list but in Clojure, we also have data structures as vectors and maps. Clojure looks like a simple program in contrast to Java and its syntax, although the abstraction of Clo...