Comment by hexasquid

5 days ago

I've never been quite sure when I'm applying data to a function, or applying a function to some data

This tripped me up last week when I was reading Futamura’s paper on partial evaluation (i .e., Futamura projections). I’m not used to the “apply” terminology for functions, even though I learned the lambda calculus in grad school over a decade ago.

to my mind the function has always been the definition of the process and the data what that process, well, applies to. so you apply the function to the data and get an output.

Is the data changing or the function changing?

  • In a functional language, neither

    (though new data is created as a result of running the function, technically this is guaranteed to not affect the inputs due to the function having to be pure)

    (perhaps this is excessively pedantic)

    • When running the routine, is it typically the function that changes or the input data that changes?

      If it's the same function running on different data, then you are applying the function to the data. If it's the same data running in a different function, then you are applying the data to the function.