4 comments on “Functional Programming Glossary

  1. Before bashing unnamed sources for “not knowing what FP terms mean”, you should make sure you understand what they are.

    First, have a look at the wikipedia page on first class functions, which is a property of a language, not the function itself.

    As for your explanation of Currying … Currying is the transformation of a n-argument function into a function of 1 argument, which return a curried function of (n-1)-arguments. The partial application of arguments is a side effect of the transformation. Another nice side effect is that, if your language supports curried functions (such as the languages of the ML family), it only has to support 1-argument functions.


    • Not disagreeing with you, but first-class functions can refer to either. It can mean that a language supports functions as first-class, but when describing a specific function, it’s only first class if it does both.
      And I agree with your description of currying, but I didn’t think that that much was pertinent to my intended audience of hybrid language users, since they don’t have it. I was just explaining what it was so that they would know what it was if someone brought it up and how it can be applied to those languages.


      • I would be interested to know where you have seen this definition of first class functions? I have never seen that before, and cannot find anything on google about it!


      • There were a few sources, but all so long ago that it would take a lot of digging to find them. I believe one source is the PragPub magazine released by Pragmatic Programming


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s