Hacker News new | ask | show | jobs
by tialaramex 1054 days ago
I have three different functions, and what you wrote is not their type, that's their signature. Actually they are really only two different functions - a < b and b > a are the same thing for this integer type - but whether or not the optimiser knows that will not always be obvious.

Yes, the C++ type system doesn't express this, that's the defect (well, it's the consequence here of a larger defect).

Once they have different types there are two different interesting things we can do, we could just coerce them into a function pointer type based on the signature which is what you've seen in C++ and seem to assume is just naturally the only possibility. Or, we can use parametric polymorphism.

1 comments

What do you mean by the "type" of a function? It doesn't sound like you're using any kind of standard definition for the word.
A type. The same thing C++ does for a lambda, since you seem to understand C++ better.