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.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...