Zum Inhalt springen

Empfohlene Beiträge

Geschrieben (bearbeitet)

Nur mal als Lesehilfe: Currying

Was Du vorhast, sieht in der Umsetzung dann so aus:


slice=Function.prototype.call.bind([].slice);
function add(x){
var args=slice(arguments);
if(args.length>1) return args[0]+args[1];
return function(y){
return x+y;
}
}
[/php]

Hier das Fiddle: Edit fiddle - JSFiddle

Du musst in der ersten Funktion überprüfen, ob die Argumentliste mehr als ein Argument enthält. Wenn ja, dann nimm die ersten beiden und summiere sie; wenn nein, curry die zweite Funktion.

Verbesserung:

[php]
if(args.length>1) return args.reduce(function(o,n){return o+n;}, 0);

So kannst Du auch add mit beliebiger Parameteranzahl > 1 aufrufen.

Das ist eine Aufgabe vom Betrieb. Deswegen kann ich den Sinn nicht ganz erschließen.

Bin auch schon am tüffteln, wann man das gebrauchen könnte.

Das sind Higher Order Functions - funktionales Javascript, was ein bisschen über den 08/15 jQuery.on("click", bla) hinausgeht ;) Vielleicht haben die was vor mit Dir im Betrieb.

Bearbeitet von lilith2k3
Geschrieben

Obwohl deine Lösung natürlich um einiges galanter ist.

Mein Code müsste doch so auch funktionieren oder ?

function add1(x,y){

if(!y){ return x;

return function(y){

return x+y;

};

}

}

return x+y;

}

Geschrieben

Ich bin zwar kein Javascriptprofi aber:

Dein Code kann so nicht funktionieren.

Mal formatiert:


function add1(x,y)
{
if(!y)
{
return x;
return function(y) {
return x+y;
};
}
}
return x+y;
}
[/PHP]

Geschrieben

Da ist nicht nur eine Klammer zuviel.

Da stehen zB zwei return Statements direkt hintereinander, es gibt also unerreichbaren Code.

Außerdem gibt es ein return Statement ausserhalb der Funktion.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...