Antwort an „Rolf B“ verfassen

Hallo MudGuard,

ich weiß, ich habe die Situation manipuliert.

Aber es geht so immerhin ohne ein explizit dafür erstelltes Objekt.

Alles andere ist was für die Zukunft, oder für 1UPs pipe-Wrapper (den man auch chain nennen könnte).

Man könnte 1UPs Vorschlag auch durch eine Funktion ersetzen, die ein Chaining von Funktionen konstruiert und mehrfach aufrufbar macht, ohne die Funktionsliste immer mitschleppen zu müssen.

function chain(...fs) {
   let funcs = Array.from(fs);   // Falls fs "nur" iterierbar ist
   
   return x0 => funcs.reduce((x,f) => f(x), x0)
}

let a1m2s7 = chain(x=> x + 1,
                   y => y * 2,
                   z => z - 7);
// oder
let a1m2s7 = chain(addOne, timesTwo, subtractSeven);

let y1 = a1m2s7(1),
    y2 = a1m2s7(2);

Spannend wird die Aufgabe, einen Chainer für async-Functionen zu schreiben. Oder einen Mix aus sync und async.

Rolf

--
sumpsi - posui - obstruxi
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen