В функциональной композиции g compose f
какие термины используются для обозначения и дифференцирования свойства упорядочения функциональных аргументов f
и g
, переданных оператору композиции compose
? Например, даны следующие композиции
val reverse = (s: String) => s.reverse
val dropThree = (s: String) => s.drop(3)
(reverse compose dropThree)("Make it so!") // ==> !os ti e: java.lang.String
(dropThree compose reverse)("Make it so!") // ==> ti ekaM: java.lang.String
что терминология делает явным reverse
приходит после в
reverse compose dropThree
пока идет сначала в
dropThree compose reverse
В Math SE они, кажется, думают, что такая точная терминология еще не появилась
... Я бы хотел провести аналогию с делением или вычитанием:
Например, вызовите внешнюю функцию composer , а внутреннюю
composand . Такие слова не являются (насколько я знаю) в общем использовании,
возможно, потому что потребность в них возникла не так часто, как
простейшие арифметические операции.
однако, в мире разработки программного обеспечения композиция, объединение в цепочку, конвейерная обработка и т. Д. Кажутся повсеместными и представляют собой функциональное программирование, поэтому должна существовать точная терминология, характеризующая решающее свойство упорядочения операндов, участвующих в композиции.
Обратите внимание, что термины, которые ставятся после вопроса, относятся конкретно к конкретным аргументам композиции, а не ко всему выражению, сродни делителю и дивиденду , которые точно описывают, что есть, что в делении.