The New/Old Prgramming Language
There is always anticipation and frustration learning a new programming language. Since I have started studying AI, I have gain an interest in Lisp, which is short for LISt Processor. John McCarthy, credited as being the father of artificial intelligence, created the language. Basically, he took some simple operators and created a language using lists as data structures and form for the language. It was not intended to be a programming language though, just a theory exercise. Here is a good essay about Lisp and programming languages in general by Paul Graham: Revenge Of The Nerds. If you want a more encyclopedia type description of Lisp, here is the Wikipedia page.
What I have had to get use to is the expressions. Everything in Lisp is written as a list starting with an open parenthesis and closing with a parenthesis. The elements inside the parenthesis are processed. In mathematical operations, the operator is the first element followed by the operands. An example is"
(+ 1 2 3 4)
The result is 10. In human readable form, this operation would be expressed as:
1 + 2 + 3 + 4 = 10
See what I mean. I recently wrote in an email to a fellow IT Architect, Derek Burt, about learning Lisp
...On another note, I have been trying to learn Lisp (yeah....I said Lisp). It all started when I began studying AI. It seems Lisp is the preferred language for AI which makes sense since John McCarthy invented the language and he is considered the father of modern AI. I have to tell you, I am digging the language. Especially using a REPL (Read Evaluate Print Loop) inside Emacs. Since I started down this path, I am learning more about programming languages than I have ever before. Example terms and tools are:
Emacs (I have used VI many times, but not Emacs. I am not sold on it, but it is a favored editor for Lisp)
S-Expression (Studying Lisp has opened my eyes to s-expression and m-expression)
REPL (Read Evaluate Print Loop)
SLIME (Superior Lisp Enteractive Mode for Emacs)
Abstraction (A common term, but programming in Lisp really demonstrates the importance)
There is more. You see, I was a MIS major in college, which is programming to process information for business. I did not study computer science. I did in high school when I was in a magnet cluster program design to "raise" kids in school to learn computers and programming, but that was a long time ago. I went down this path to refresh my mind for IT and get the war behind me. I wanted to get excited about the IT industry again so I can perform when I become an active IBMer. What better way to "re-learn" programming than by learning another language?
More to come on my journey of learning Lisp.