In Java 8 il nuovo pacchetto java.util.function contiene molte interfacce funzionali. La documentazione per quel pacchetto (http://docs.oracle.com/javase/8/docs/api/java/util/function/package-summary.html) contenga molti riferimenti alle "forme funzione":Che cos'è una "forma di funzione" rispetto alle interfacce funzionali in Java 8?
- Ci sono parecchi di base funzione forme, compresa la funzione (funzione unaria da T a R), dei consumatori (funzione unaria da T a vuoto), Predicato (funzione unaria da T a booleano) e Fornitore (funzione nilare a R).
- Le forme di funzione hanno un'origine naturale basata sul modo in cui vengono utilizzate più comunemente. Le forme base possono essere modificate da un prefisso arity per indicare un'arità diversa, ad esempio BiFunction (funzione binaria da T e da U a R).
- ci sono ulteriori derivato funzione figure che si estendono la funzione di base forme, compreso UnaryOperator (estende Funzione) e BinaryOperator (estende BiFunction).
non avevo mai sentito parlare del termine "forma la funzione" prima, e posso a malapena a trovare un riferimento ad esso ovunque tranne nella documentazione di cui sopra, ma dal momento che è documentazione formale di Oracle su interfacce funzionali che vorrei capiscilo.
Qualcuno può fornire una definizione di "forma di funzione" e inventare un esempio? È un termine generico in Informatica o si riferisce solo a Java 8? E in che modo la forma della funzione è correlata a un descrittore di funzione (come (T) -> booleano per l'interfaccia del predicato <T>)?
UPDATE I due commenti seguenti di Brian Goetz rispondono alle domande che ho sollevato in questo post.
L'unica (informale) riferimento alla forma nella JLS è in fondo [15.12.2.1] (http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.12.2.1). – assylias
"forma" è anche menzionato in [JSR 335] (https://jcp.org/aboutJava/communityprocess/final/jsr335/index.html), Parte F; ma è sempre messo tra virgolette e non esiste una definizione esplicita per questo. – stakx
I riferimenti in JLS e JSR335 a "forma" sono in frasi identiche e il riferimento è presumibilmente copiato da un documento all'altro. Dal contesto sembra che la "forma della funzione" sia in qualche modo correlata alla valutazione del tempo di esecuzione (mentre un "descrittore di funzione" è ovviamente noto alla compilazione). – skomisa