And too much Lambda after all

Functional programming has been around since the mid of the last century and the basic concepts applied by mathematicians are much older.

Like the first chick crawled out of a dino egg , computing and instructions predate Von Neumann computers by ages. Actually bees and ants telling other bees and ants what to do and cells cooperate with each other.

Many people believe arithmetic operations are the base of computers while others understand that working with symbols is more the nature of computation.

So back to the modern age and the 21st century where Moore’s law is predicted to end in 2020 or so and the only way to get faster is parallelization. While Object Oriented Programming is closest as how humans think and perceive the universe, functional programming which is considering side effects is more suited to parallelization as it produces less dependencies.

Pure functional programming only cares about processing data and the rest can be done with conventional programming languages like JavaScript which have a great infrastructure for web development.

Functional programming has reached now JavaScript and there are a lot of libraries having special “functions” or better “procedures” for it. Nevertheless
it is as a friend of mine has pointed out not like programming in LISP.

Although functions are first class citizens in JavaScript and you even have arrays and associative arrays and can write self-modifying code and getting it to run or “evaluated” the data looks different from the code. Otherwise you would have javaScript code look like JSON.

LISP as people like it is not a fully grown language like JavaScript with uncountable libraries and frameworks but rather a tiny language which even in its most minimalistic way can expand itself. LISP was not meant to be functional and LISP got its parenthesis syntax because people decided they wanted it small tiny and expandable.

Actually they only good way to work with it is to expand it and do only let it process data. LISP is probably rather a concept of thinking and programming than a programming language and probably incorporating this way into your any other language project is making it a great thing.

Just like an empty cup can take almost any liquid, nearly any language can be turned into LISP. There is even a project on github by Joel Martin called MAL which is not the French word for “bad” but rather stands for “Make A Lisp”.

He even talks hours about his MAL project on youtube and after getting frustrated on how to write a LISP interpreter I decided to use his guide and make my own one which is currently developed on github.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s