Others have already taken your challenge on directly, and that is a part of the truth. However, I want to point out that if you want, you can sit and nitpick each one, pointing out how C is just fine on that front, and talk yourself into a position where it's not that big a deal, by focusing on one thing at a time and appearing to knock out each thing one by one. For this reason, "enlightenment experiences" tend to resist concretization; focus on just the words and you can talk yourself right out of them without much effort.<p>But the point is not the laundry list of bullet-point features, the point is the whole totality of the experience. There isn't a thing that Lisp can do that C can't be beaten into doing; for one thing, writing your own Lisplet isn't that hard (and a good exercise, too!), and there you have it, "all of Lisp" right there. But it makes those things so hard that you won't really want to do them. You can intellectually learn the value of some of the things that Lisp provides, but until you live for a while in an environment where they are <i>easy</i> you will never fully grok them.<p>Even though Lisp teaches nothing that could not be theoretically learned in C, in practice you won't learn them in C. The bar is too high, and if you're really trying to do it from scratch you'll make too many mistakes on things that were worked out 40 or 50 years ago. Learn something like Lisp.<p>(Haskell is another choice on that front; Lisp will teach you better metaprogramming, but Haskell has some advantages in <i>forcing</i> you to completely follow through with an alternate paradigm. Arguably Lisp is more practical for permitting such things, but less educational.)