The C language is purely functional
conal.net
conal.net
It's really sad that a bunch of people who never did learn the tricks ended up declaring macros as "bad" by fiat, to the extent that newer languages have had to invent less expressive versions (C++) or omit the facility entirely (Java). These days, it's almost a lost art.
I used macros to great effect to create constant data structures for such things as keyword tables in parsers. The art of programming has advanced a long ways since the early days of C. I think the badness of macros is more a function of those times than inherent problems with macros themselves.
I hear macros are useful for shooting yourself in the gun.
The author was making a joke about how Haskell uses monads to remain pure.
"cpp" is Haskell, "C" is the way IO monad is used.
This seems to come back to that original Scala-is-not-functional article, which seems to argue that it isn't features or purity that makes a language "functional" or not, it's how good the language is at working with that style.