I think I'd possibly go with the word "apply" for both contexts.
In the first case, the operands are provided as method arguments whilst the operation is parameterised via the object itself (presumably subtraction etc. would be handled by the programmer using the method of a different object).
In the second case it is the operation which is parameterised, whereas the operand(s) are implied by the containing object.
Either way, it's equally an application of operations to operands. And to that extent, it may imply poor modelling - what may be missing here is an operator or applicator class with an apply method, that is, a class which generically applies operations to operands, both of which are provided as parameters. Operations then become functions instead of classes, and operands become records instead of classes, both of which are passed as parameters to an apply method.
It's like the old question about whether it should be the sending or receiving Account object which contains the TransferMoney method - in fact it's neither, it's the Journal object which transfers money, and it takes at least two Accounts as parameters.
Alternatively, it may be a sign that there is confusion or inconsistency in whether it is the operation or the operand which is treated as the active participant. It makes natural sense to say that an addition takes two numbers and sums them. It makes less natural sense to say two numbers take an addition and sum themselves, even less again to say that a number takes an addition and another number and sums itself.
callWithThis
,passInto
. But it seems like an unnecessary indirection and against OO principles.fkt(fktArgObj)
just does the trick. Just like we don't donumber.passInto(negate)
.