So che obj.func1().func2()
è chiamato metodo di concatenamento, ma qual è il termine tecnico per:
func1(func2(), func3());
Dove il ritorno di una funzione è usato come argomento ad un altro.
Non penso che sia la composizione della funzione. La composizione della funzione significa assumere due o più funzioni e trasformarle in una nuova funzione, come f . g . h
in Haskell. Nota che nessuna funzione è chiamata a questo punto.
Personalmente, mi riferisco a costrutti come func1(func2(), func3())
come "chiamate di funzioni annidate".
In matematica, si chiama composizione delle funzioni . Non penso di aver sentito il termine applicato alla programmazione, però. Ciò potrebbe essere dovuto al fatto che l'utilizzo è in gran parte evitato per alcune ragioni. Può introdurre strani bug quando le funzioni hanno effetti collaterali, poiché i compilatori sono liberi di valutare func3 prima di func2. È più difficile eseguire il debug perché non è possibile impostare i punti di interruzione o stampare risultati intermedi e la maggior parte delle persone trova semplicemente più difficile leggere.
Come punti @Karl Bielefeldt, si chiama composizione della funzione in Math.
Non c'è un termine tecnico per questa cosa nella programmazione. E penso che sia una buona cosa, perché indica che l'operazione è normale e Ortogonale .
L'ortogonalità nei linguaggi di programmazione significa che puoi usare un'istruzione / operazione indipendente dal suo contesto . Ad esempio, puoi chiamare una funzione / metodo in tutti i seguenti modi, e si comporterebbe allo stesso modo ...
f1()(f2(), f3());
x = y + f4();
if ( f5() && !f6() ) doSomething();
f7() = f8() + f9(); // in C++ when a function returns a reference
x = f10() ? f11(f12(f13(x))) : f14();
Puoi leggere di più su Ortogonalità in Programmazione su Wikipedia , e c'è un domanda su StackOverflow su questo.
Non sono molto bravo con i termini, ma ho appena letto un articolo di qualche giorno fa che si riferiva al termine Superiore funzioni di ordine , ed ecco un riassunto della definizione per Wikipedia:
In mathematics and computer science, higher-order functions, functional forms, or functionals are functions which do at least one of the following:
- take one or more functions as an input
- output a function
All other functions are first-order functions. In mathematics higher-order functions are also known as operators or functionals. The derivative in calculus is a common example, since it maps a function to another function.
quindi, in questo caso, poiché tale scenario prende almeno una funzione come input / param, sarebbe considerata una funzione di ordine superiore, credo.
Leggi altre domande sui tag terminology