Ir al contenido principal

Entry #3: The Promises of Functional Programming

“The Promises of Functional Programming” is an article written by Konrad Hinsen in 2009, it was published in the scientific magazine "Computing now" from the IEEE Computer Society (Institute of Electrical and Electronics Engineers). In the article, Konrad Hinsen talks about functional programming while using examples made in Clojure programming language, in order to explain some essential concepts about functional programming.

The article shows the characteristics and advantages of functional programming using Clojure, and it also explains the differences between functional and traditional programming. Functional programming was created in the 50s, however it has been used to write programs, because of its advantages for concurrent and parallel programming, and its robust and easier to test.

A functional programming language is a language that operates by evaluating mathematical functions, like declarations and expressions. The fundamental principle of functional programming is that you do not use any kind of variables or loops, instead they use recursion, because you realize a computation by composing functions, and functions are not supposed to change any variables; this functions must be pure, meaning that they are free from side effects. You can even pass functions as parameters to other functions or even have a function that returns another function. Concurrency and parallelism are the most important advantages, because of the power that new computers provide to us.

In order to write complex programs, you must know about abstraction, because in functional programming, algorithmic abstractions are the most prominent; as we can see it in the Clojure programming language, because  it has high-order functions. Functional programming is cited as a promise technique with great potential, because it can be the solution for complex algorithms or problems; all of this while using concurrency and parallelism programs. Furthermore, functional programming is very efficient as it prevents locking threads and race conditions, like deadlocks.

Article: Hinsen, K. (2009). The Promises of Functional Programming. Recovered from http://34.212.143.74/s201913/tc2006/the_promises_of_functional_programming.pdf

Hinsen, K. (2009). The Promises of Functional Programming. Recovered from https://www.researchgate.net/publication/224506557_The_Promises_of_Functional_Programming

Comentarios

Entradas populares de este blog

Entry #9: Language as the Ultimate Weapon

"Language as the “Ultimate Weapon” in Nineteen Eighty-Four" is an essay written by Jem Berkes in 2000. In the article, Jem Berkes discusses the inspiration behind the Newspeak language used by George Orwell inside his novel 1984 (Nineteen Eighty-Four) and how it reflects in real-world situations we face day to day and how the language is powerful enough to express meaning, intention and ability.  Inside the novel 1984, there is a language called Newspeak which is a simplification of the English language, or as the novel refers it as Oldspeak. Newspeak vocabulary eliminates words that are not necessary. The new vocabulary helped the government to control people and affect memories from person's, in order to forget most of them or provoke and affect the way a person could express or think. However, in this particular entry I won't talk about the essay written by Jem Berkes, I will answer a question asked by my professor which is something related to the essay...

Entry #4: Dick Gabriel on Lisp

"Dick Gabriel on Lisp" is a 60 minute long podcast produced by Software Engineering Radio in 2008. In this podcast, Dick Gabriel talks about his professional background and about the history of Lisp programming language and its functions and characteristics. Dick Gabriel is a computer scientist who studied at the Stanford University. He started his own Lisp company in 1984. Lisp is one of the first programming languages developed with a functional approach. Functional means that a function can be evaluated and when it returns a value, it is then evaluated by another function and so on. The computation or algorithms are done by nesting functions, in other words, a function is data and a data can be a function. However, other programming languages have taken over the industry in the next years, leaving behind Lisp. Modern programming languages have a more attractive and easier to understand method of coding in comparison to Lisp. Nevertheless, Lisp has been used in oth...