cross-posted from: https://programming.dev/post/24307652

An article (by me) that demonstrates why functional languages are the minimum that one should consider when choosing which programming language to use for some project. The sole reason for that is expressiveness, which is the factor that dictates just how creative and innovative your software can be.

It also provides an interesting example: A custom looping construct defined in just 10 lines of Scheme code, but one with enormous power. This looping construct is a regular, ordinary, portable procedure. If your language can support such a custom looping construct, also as a procedure, it’s easy to say it’s reasonably expressive.