I've written Clojure professionally. It's exactly the language I had in mind when I said that it takes a week to get accustomed to. I find it a very clean and elegant language. Shame that it's dynamically typed.
Check out Common Lisp, it's gradually typed, so if you want you can just write your code like this:
(defun fib (n) (declare (type (Integer 0 100) n)) (the (Integer 0 *) (if (< n 2) n (+ (fib (- n 1)) (fib (- n 2).)
Check out Common Lisp, it's gradually typed, so if you want you can just write your code like this: