Another language to look at at a later date is LISP.

There are things you can do in LISP that you cannot do in others.