Wie kann ich eine Funktion höherer Ordnung wie Map oder Reduce schreiben?Java

Java-Forum
Anonymous
 Wie kann ich eine Funktion höherer Ordnung wie Map oder Reduce schreiben?

Post by Anonymous »

Ich habe einen Artikel über Joel On Software über die Idee gelesen, Funktionen höherer Ordnung zu verwenden, um Code durch den Einsatz von Map und Reduce erheblich zu vereinfachen. Er erwähnte, dass dies in Java schwierig sei. Der Artikel: http://www.joelonsoftware.com/items/2006/08/01.html

Das Beispiel aus dem folgenden Artikel durchläuft ein Array und verwendet die Funktion fn, die als Argument für jedes Element im Array übergeben wurde:

Code: Select all

function map(fn, a)
{
for (i = 0; i < a.length; i++)
{
a[i] = fn(a[i]);
}
}
Dies würde in der Praxis ähnlich wie folgt aufgerufen werden:

Code: Select all

map( function(x){return x*2;}, a );
map( alert, a );
Idealerweise würde ich gerne eine Kartenfunktion schreiben, um mit Arrays oder Sammlungen jeglicher Art zu arbeiten, wenn möglich.

Ich habe mich im Internet umgesehen und es fällt mir schwer, Ressourcen zu diesem Thema zu finden. Erstens: Sind anonyme Funktionen in Java möglich? Ist das auf andere Weise möglich? Wird es in einer zukünftigen Java-Version verfügbar sein? Wenn möglich, wie kann ich das machen?

Ich stelle mir vor, dass es, wenn dies in Java nicht möglich ist, eine Art „Muster“/Technik gibt, die die Leute verwenden, um den gleichen Effekt zu erzielen, da ich mir vorstelle, dass anonyme Funktionen ein sehr mächtiges Werkzeug in der Softwarewelt sind. Die einzige ähnliche Frage, die ich finden konnte, war diese: Java-Generika – Funktionen höherer Ordnung wie Map implementieren und das macht für mich absolut keinen Sinn.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post