When did Scheme get this &quot;curried define&quot;: (define (((f x) y) z) blah)?<p>I&#x27;m sure that isn&#x27;t in R5RS and I don&#x27;t see it in R7RS. I found a description in the Racket manual.<p>In any case, I like how they are making the context explicit. In the regular math notation for the physics, you just say something like &quot;the Lagrangian for the free particle&quot; and then just spew out something with free variables sticking out of it, like velocity &quot;v&quot;.  The hacker in me of course asks, how the heck does that work if I have two particles? There is only one v? When we have two, we hand-wave in some subscripts: v1, v2, ...  This system makes it explicit: it&#x27;s the Lagrangian <i>for</i> a particle. So the particle appears as a parameter, and that parameter has accessors on it to retrieve its properties: velocity of the particle, etc.