Size: a a a

2020 May 15

ПП

Павел Павел... in pro.js
Иногда излишние знания только мешают, как говорится меньше знаешь крепче спишь
источник

p

persona x grata in pro.js
В решениях к задачам в книге учат подобному коду. Это хороший код?

async function locateScalpel(nest) {
 let current = nest.name;
 for (;;) {
   let next = await anyStorage(nest, current, "scalpel");
   if (next == current) return current;
   current = next;
 }
}

function locateScalpel2(nest) {
 function loop(current) {
   return anyStorage(nest, current, "scalpel").then(next => {
     if (next == current) return current;
     else return loop(next);
   });
 }
 return loop(nest.name);
}

locateScalpel(bigOak).then(console.log);
// → Butcher's Shop
locateScalpel2(bigOak).then(console.log);
// → Butcher's Shop
источник

DE

Denis Efremov in pro.js
persona x grata
В решениях к задачам в книге учат подобному коду. Это хороший код?

async function locateScalpel(nest) {
 let current = nest.name;
 for (;;) {
   let next = await anyStorage(nest, current, "scalpel");
   if (next == current) return current;
   current = next;
 }
}

function locateScalpel2(nest) {
 function loop(current) {
   return anyStorage(nest, current, "scalpel").then(next => {
     if (next == current) return current;
     else return loop(next);
   });
 }
 return loop(nest.name);
}

locateScalpel(bigOak).then(console.log);
// → Butcher's Shop
locateScalpel2(bigOak).then(console.log);
// → Butcher's Shop
Пиздец
источник

В

Виктория in pro.js
Foma
@react_or а compose напишешь?
Держи, первый вариант

function compose(...fns) {
 return function(value) {
   let result = value;
   
   if (fns.length === 0) {
     return value;
   }
   
   for (let i = fns.length - 1; i >= 0; i--) {
     result = fns[i](result);
   }
   
   return result;
 };
}
источник

S

Syntax Highlight Bot in pro.js
Виктория
Держи, первый вариант

function compose(...fns) {
 return function(value) {
   let result = value;
   
   if (fns.length === 0) {
     return value;
   }
   
   for (let i = fns.length - 1; i >= 0; i--) {
     result = fns[i](result);
   }
   
   return result;
 };
}
источник

В

Виктория in pro.js
Foma
@react_or а compose напишешь?
Второй

function compose(...fns) {
 return function(value) {
   return fns.reverse().reduce((acc, fn) => fn(acc), value);
 };
}
источник

S

Syntax Highlight Bot in pro.js
Виктория
Второй

function compose(...fns) {
 return function(value) {
   return fns.reverse().reduce((acc, fn) => fn(acc), value);
 };
}
источник

F

Foma in pro.js
а где ж es6))
источник

F

Foma in pro.js
ааа редусе))
источник

F

Foma in pro.js
function pipe(...fns) {
 return function(value) {
   return fns.reduce((acc, fn) => fn(acc), value);
 };
}
источник

S

Syntax Highlight Bot in pro.js
Foma
function pipe(...fns) {
 return function(value) {
   return fns.reduce((acc, fn) => fn(acc), value);
 };
}
источник

F

Foma in pro.js
from of оставим для монады?
источник

F

Foma in pro.js
не ну редусе то по хитрому))
источник

F

Foma in pro.js
мб сделать VikRX
источник

В

Виктория in pro.js
Foma
@react_or а compose напишешь?
Третий вариант

Рекурсия

function compose(...fns) {
 let loop = (fns, value) => fns.length === 1 ? fns[0](value) : fns[0](loop(fns.slice(1), value));
 
 return function(value) {
   return fns.length === 0 ? value : loop(fns, value);
 };
}
источник

S

Syntax Highlight Bot in pro.js
Виктория
Третий вариант

Рекурсия

function compose(...fns) {
 let loop = (fns, value) => fns.length === 1 ? fns[0](value) : fns[0](loop(fns.slice(1), value));
 
 return function(value) {
   return fns.length === 0 ? value : loop(fns, value);
 };
}
источник

В

Виктория in pro.js
Foma еще вопросы?
источник

F

Foma in pro.js
хочу takeUntil
источник

В

Виктория in pro.js
Foma
function pipe(...fns) {
 return function(value) {
   return fns.reduce((acc, fn) => fn(acc), value);
 };
}
Не в той последовательности у тебя функции будут вызываться
источник

В

Виктория in pro.js
Надо справа на лево
источник