#TIL The C preprocessor is actually Turing-complete if you try hard enough. There's even the Order programming language, a functional programming language built entirely upon the C99 preprocessor, with first-class anonymous functions, partial application, tail recursion, reflection, arbitrary-precision arithmetic, and more! https://github.com/rofl0r/order-pp/tree/master/example
Its author also found there were only two C compilers in the world that could run Order correctly, one was GCC, another was the Wave C++ preprocessor library, everything else violated C99 (and even C89) in some ways.