Clojure is an imperative language. Its operations are defined in terms of concrete actions. But those actions are often the same actions available to the programmer at runtime. This makes it easy to bootstrap.
I like languages with a small core that is extensible. The languages tend to be weird and require less code to bootstrap.