On Tue, Nov 12, 2019 at 4:45 AM Philip Oakley <philipoakley@iee.email> wrote: > On 12/11/2019 04:49, Jonathan Gilbert wrote: > > On Mon, Nov 11, 2019 at 4:59 PM Philip Oakley <philipoakley@iee.email> wrote: > >> sounds like "Currying" a function but with the parameters taken in any > >> order, though, in a sense, perhaps not generating intermediate functions... > > It's like currying if you could pass g(x) = f(x, y) to one block of > > code and h(y) = f(x, y) to another block of code, so that each of g > > and h are each like curried versions of f that "bake in" one of the > > arguments, without having to know which one will get called first. :-) > > > > Jonathan Gilbert > So that would be called "Chording"... > (Is there a 'proper' technical term for that approach?) Not an entirely implausible term :-) The only other implementation I've ever seen was Microsoft's "Polyphonic C#", which got rolled into C-omega. I'm pretty sure, though, that it was never referred to as something you _do to_ a function, but rather as a _different type_ of function -- as in, the function hasn't been "chorded", it "is a chord". Very little literature one way or the other though, and this is the first actual, live use case for the structure I've encountered in my years of programming :-) Jonathan Gilbert