Follow

"I will take for granted the fact that Lisp is commonly acknowledge to be a FP language, so I will not explain why Lisp is a FP language." Oi. Time to figure out where this is commonly acknowledged (and why Rich Hickey didn't think it was all that common when he made an FP lispy). tilde.town/%7Eramin_hal9001/ar

@worldsendless Sure, Common Lisp isn't as purely functional as something like Haskell, but programming languages textbooks pretty much universally classify the Lisp family as functional.

@worldsendless I think it is because the LISP languages were the first implementations (that I know of) of Church's lambda calculus, the theoretical basis for functional programming. That said, in practice FP is more of a programming pattern. How "functional" a language is usually depends of how the language facilitate those patterns, which is sometimes subjective. For example, in ELisp or Common Lisp functions are first class citizens, so you can program almost exclusively with pure functions, yet both languages allow global state and mutability. Does that make them less functional? I've never used Clojure, so forgive any misunderstanding on my part, but it seems Rich Hickey thought all the other LISPs facilitate non-functional patterns too much, and included more features in Clojure to encourage a more functional style.

@eqf00 Thanks for the good reply! "Functional" deriving from mathematics (esp. Church) makes sense, and then I can see how that term could be adopted. I think your intuition about Rich Hickey wanting Clojure "more functional" makes sense. I can see that there are several senses of the term. Calling Lisp functional might be using an older sense of "functional" that predates the OOP vs FP contemporary discussions

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.