Yes, Common Lisp has a huge number of features. Luckily you don't have to learn all at once to write useful programs.
Python is definitely a simpler language. At some point it gets more complicated, when you need to move out of the comfort zone. For example last I looked the main Python implementation had a GIL (Global Interpreter Lock) which makes multi-core concurrent execution a problem. Common Lisp has more sophistcated implementations which don't have a GIL and easier use of multi-core threading.
Yes, you need to learn the difference between setting a variable and defining a global variable.
A 'form' is any valid expression in the Lisp programming language:
This is a valid Lisp form: (+ 1 2) It computes to 3.
This is not a valid Lisp form: (1 2 -). Trying to execute it is an error. The list is a valid s-expression, a list with three elements. But it is not a valid Lisp program, because Lisp expects the operator as the first element of a list and 1 is not a valid operator.
This idea of s-expressions and some of them are valid expressions in a programming language is different from Python, which does not have the idea of code-as-data. Thus you have more to learn and it is more complicated. But it makes many forms of computing with code easy.
Yes, you will have to learn about functions being able to return more than one value.
Yes, learning LOOP is useful. It's not the most elegant construct but it is quite powerful. There is a slightly more elegant and even more powerful alternative: Iterate. But it is a library and LOOP is already built-in.
Yes, a book helps. Luckily there are many. See the here mentioned Common Lisp Cookbook.
Common Lisp: A gentle introduction to symbolic computation.
https://www.cs.cmu.edu/~dst/LispBook/
You can download the older version for free as a PDF.
I have it and it's quite ok; very fun to read. I'd recommend it to people who want to jump into Common Lisp and lisps in general, who know at least one other programming language.
That said, it's not as comprehensive as Practical Common Lisp - it covers a bit less of CL, and a bit more of interesting things you can do it.
Appreciate the quick review. Maybe when I re-learn CL Ill use it since I have prior experience. Plus, I just remember it being super, geeky fun in terms of the writing and art.
Python is definitely a simpler language. At some point it gets more complicated, when you need to move out of the comfort zone. For example last I looked the main Python implementation had a GIL (Global Interpreter Lock) which makes multi-core concurrent execution a problem. Common Lisp has more sophistcated implementations which don't have a GIL and easier use of multi-core threading.
Yes, you need to learn the difference between setting a variable and defining a global variable.
A 'form' is any valid expression in the Lisp programming language:
This is a valid Lisp form: (+ 1 2) It computes to 3.
This is not a valid Lisp form: (1 2 -). Trying to execute it is an error. The list is a valid s-expression, a list with three elements. But it is not a valid Lisp program, because Lisp expects the operator as the first element of a list and 1 is not a valid operator.
This idea of s-expressions and some of them are valid expressions in a programming language is different from Python, which does not have the idea of code-as-data. Thus you have more to learn and it is more complicated. But it makes many forms of computing with code easy.
Yes, you will have to learn about functions being able to return more than one value.
Yes, learning LOOP is useful. It's not the most elegant construct but it is quite powerful. There is a slightly more elegant and even more powerful alternative: Iterate. But it is a library and LOOP is already built-in.
Yes, a book helps. Luckily there are many. See the here mentioned Common Lisp Cookbook.
As introductions see:
Practical Common Lisp from Peter Seibel. http://www.gigamonkeys.com/book/
Common Lisp: A gentle introduction to symbolic computation. https://www.cs.cmu.edu/~dst/LispBook/ You can download the older version for free as a PDF.
Good luck with learning it!