1. 7

    I mostly agree with this article, but I’m skeptical that you can do functional programming in a language that doesn’t have first-class functions. I think there’s a minimum bar for supporting FP style, and though you could jump thru hoops to implement first-class functions in a language that doesn’t have them, by that point you’re just creating a new language hosted inside another.

    But I also don’t think “functional programming language” is a great term, except when understood as “language which encourages functional programs to be written”. Like speed, “functionalness” is a property which can only be applied to individual programs, not whole languages. And like speed, a language can shape both the bounds of how functional the programs written in it can be as well as how much effort it takes to achieve a certain level of speed or functionalness.

    1. 3

      I’m skeptical that you can do functional programming in a language that doesn’t have first-class functions.

      Yeah. If I were to rewrite/revise this article, I’d probably mention that. You need lexical closures, or some equivalent. I actually believe even subroutines (code with effects) need to be first class as well.