Size: a a a

2020 June 17

SM

Sergey Murashow in pro.js
Зомби 🧟‍♂️
проблем не должно быть
спасибо! А может подкинешь годного по правильной разработке на ноде почитать?
источник

В

Виктория in pro.js
persona x grata
А этот код как улучшить?
..
Create a function gradeCalculator which takes a grade (number) and returns its letter grade.

grades 90 and above should return "A"
grades 80 to 89 should return "B"
grades 70 to 79 should return "C"
grades 60 to 69 should return "D"
59 and below should return "F"
//

function gradeCalculator(grade) {
 if (grade >= 90) {return 'A'};
 if (grade === 89 || grade >= 80) {return 'B'};
 if (grade === 79 || grade >= 70) {return 'C'};
 if (grade === 69 || grade >= 60) {return 'D'};
 if (grade <= 59) {return 'F'};
}

console.log(gradeCalculator(92)); //=> "A"
console.log(gradeCalculator(84)); //=> "B"
console.log(gradeCalculator(70)); //=> "C"
console.log(gradeCalculator(61)); //=> "D"
console.log(gradeCalculator(43)); //=> "F"
Есть решение в ФП стиле.
С монадой Either
источник

p

persona x grata in pro.js
Виктория
Есть решение в ФП стиле.
С монадой Either
Круто, я бы взглянул ) ты говорила, что эта монада для обработки ошибок
источник

З🧟

Зомби 🧟‍♂️... in pro.js
Sergey Murashow
спасибо! А может подкинешь годного по правильной разработке на ноде почитать?
Node.js в действии - неплохая
источник

З🧟

Зомби 🧟‍♂️... in pro.js
к слову)
источник

SM

Sergey Murashow in pro.js
Зомби 🧟‍♂️
Node.js в действии - неплохая
спасибо. записал. а то везде сферические задачи в вакууме и хз зачем оно обычно надо)
источник

SM

Sergey Murashow in pro.js
??))
источник

З🧟

Зомби 🧟‍♂️... in pro.js
npm новый вышел)
источник

З🧟

Зомби 🧟‍♂️... in pro.js
тольк что
источник

З🧟

Зомби 🧟‍♂️... in pro.js
Sergey Murashow
спасибо. записал. а то везде сферические задачи в вакууме и хз зачем оно обычно надо)
тут главное одну мысль понять и всё
источник

З🧟

Зомби 🧟‍♂️... in pro.js
а js он и есть js
источник

З🧟

Зомби 🧟‍♂️... in pro.js
nodejs позволяет сделать из js язык общего назначения
источник

З🧟

Зомби 🧟‍♂️... in pro.js
и вообще почитать что такое нода
источник

З🧟

Зомби 🧟‍♂️... in pro.js
желательно на офф сайте документацию
источник

З🧟

Зомби 🧟‍♂️... in pro.js
и книг не надо)
источник

В

Виктория in pro.js
persona x grata
Круто, я бы взглянул ) ты говорила, что эта монада для обработки ошибок
Не обязательно для ошибок
Это монада для реализации ветвлений в более общем понимании
источник

В

Виктория in pro.js
persona x grata
Круто, я бы взглянул ) ты говорила, что эта монада для обработки ошибок
Секунду
источник

В

Виктория in pro.js
persona x grata
Круто, я бы взглянул ) ты говорила, что эта монада для обработки ошибок
let left = (value) => ({
   swap: () => right(value),
   flatMap: () => left(value),
   getOrElse: (defaultValue) => defaultValue
});

let right = (value) => ({
   swap: () => left(value),
   flatMap: (fn) => fn(value),
   getOrElse: () => value
});

let select = (rate) => {
   let either = right(rate);

   let context = {
       option: (value, predicate) => {
           either = (
               either
                   .flatMap((rate) => (
                       predicate(rate, value) ? left(value) : right(rate)
                   ))
           );

           return context;
       },
       default: (value) => (
           either
               .swap()
               .getOrElse(value)
       )
   };

   return context;
};

let moreThan = (a) => (b) => b >= a;

let gradeCalculator = (grade) => (
   select(grade)
       .option('A', moreThan(90))
       .option('B', moreThan(80))
       .option('C', moreThan(70))
       .option('D', moreThan(60))
       .default('F')
);
источник

А

Аркаша Одесский 🇪🇪... in pro.js
Виктория
let left = (value) => ({
   swap: () => right(value),
   flatMap: () => left(value),
   getOrElse: (defaultValue) => defaultValue
});

let right = (value) => ({
   swap: () => left(value),
   flatMap: (fn) => fn(value),
   getOrElse: () => value
});

let select = (rate) => {
   let either = right(rate);

   let context = {
       option: (value, predicate) => {
           either = (
               either
                   .flatMap((rate) => (
                       predicate(rate, value) ? left(value) : right(rate)
                   ))
           );

           return context;
       },
       default: (value) => (
           either
               .swap()
               .getOrElse(value)
       )
   };

   return context;
};

let moreThan = (a) => (b) => b >= a;

let gradeCalculator = (grade) => (
   select(grade)
       .option('A', moreThan(90))
       .option('B', moreThan(80))
       .option('C', moreThan(70))
       .option('D', moreThan(60))
       .default('F')
);
источник

p

persona x grata in pro.js
Виктория
let left = (value) => ({
   swap: () => right(value),
   flatMap: () => left(value),
   getOrElse: (defaultValue) => defaultValue
});

let right = (value) => ({
   swap: () => left(value),
   flatMap: (fn) => fn(value),
   getOrElse: () => value
});

let select = (rate) => {
   let either = right(rate);

   let context = {
       option: (value, predicate) => {
           either = (
               either
                   .flatMap((rate) => (
                       predicate(rate, value) ? left(value) : right(rate)
                   ))
           );

           return context;
       },
       default: (value) => (
           either
               .swap()
               .getOrElse(value)
       )
   };

   return context;
};

let moreThan = (a) => (b) => b >= a;

let gradeCalculator = (grade) => (
   select(grade)
       .option('A', moreThan(90))
       .option('B', moreThan(80))
       .option('C', moreThan(70))
       .option('D', moreThan(60))
       .default('F')
);
Сильно)
источник