Rolf B: Replikation von Method Chaining außerhalb von Objekten?

Beitrag lesen

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