Рубрики
Без рубрики

Функциональная композиция объясняется с использованием эволюции покемонов

Йо, (шарф) собака. Я слышал, что вам нравятся функции, поэтому я вкладываю функцию в вашу функцию, чтобы вы могли функционировать … Tagged with JavaScript, начинающие, Codenewbie.

Йо, (шарф) собака. Я слышал, что вам нравятся функции, поэтому я помещаю функцию в UR, чтобы вы могли функционировать во время ее функций.

Во всяком случае, поэтому мой друг начал научиться кодировать, и ей нужно было помощь с пониманием того, что учитель просит ее сделать.

Это то, что она прислала мне:

/*
Create a function that takes in two inputs.
One should be a function and the other should be
the argument to call the input function with.

Then in the function you define call the passed in function
with the input argument. 
*/

… извините, но лолвут?

Вот пример функции, которую она отправила:

function sayHi(b,c){
c=prompt("Greet me!");
b(c);

Хорошо, это немного более ясно, я думаю.

Итак, вот и мы:

Из того, что я понимаю, мы стремимся создать функцию, которая выполняет другую функцию. Я использовал концепцию Эволюция покемонов с камнями Чтобы проиллюстрировать это.

Эволюция – это общая универсальная функция.

function evolutionFn(pokemon, stone){
  stone = prompt('Which stone will you use?');
  return pokemon(stone);
}

Сами покемоны являются отдельными функциями, но все же универсально используют ту же функцию эволюции. Лучшим примером для использования было бы Eevee Потому что возможности их эволюции огромны. (Но сейчас мы ссылаемся на их основные эволюции Gen 1).

const eevee = (x) => {
  let userInput = x.toLowerCase();
  if ( userInput === 'fire' ){
    return 'Congrats! You now have a Flareon!'
  }else if( userInput ==='thunder' ){
    return 'Congrats! You now have a Jolteon!'
  } else if( userInput === 'water' ){
    return 'Congrats! You now have a Vaporeon!'
  } else {
    return 'Huh. It didn\'t work.'
  }
}

Я также создал Пикачу, чтобы проиллюстрировать, что совершенно другой покемон также может использовать этот метод эволюции.

const pikachu = (x) => {
  let userInput = x.toLowerCase();
  if ( userInput === 'thunder'){
    return 'Congrats! You now have a Raichu!'
  } else {
    return 'Huh. It didn\'t work.'
  }
}

Составьте все это вместе, и мы получим следующее:

function evolutionFn(pokemon, stone){
  stone = prompt('Which stone will you use?');
  return pokemon(stone);
}

const eevee = (x) => {
  let userInput = x.toLowerCase();
  if ( userInput === 'fire' ){
    return 'Congrats! You now have a Flareon!'
  }else if( userInput ==='thunder' ){
    return 'Congrats! You now have a Jolteon!'
  } else if( userInput === 'water' ){
    return 'Congrats! You now have a Vaporeon!'
  } else {
    return 'Huh. It didn\'t work.'
  }
}

const pikachu = (x) => {
  let userInput = x.toLowerCase();
  if ( userInput === 'thunder'){
    return 'Congrats! You now have a Raichu!'
  } else {
    return 'Huh. It didn\'t work.'
  }
}

console.log(evolutionFn(eevee));
// example: if prompt => 'fire or FIRE or even FiRe', 
// it will say "Congrats! You now have a Flareon!"
// if it's anything else, the console will return "Huh. It didn't work."


console.log(evolutionFn(pikachu));
// Should return "Congrats you now have a Raichu"! etc. etc.

Играйте с ним вживую на Repl.it!

И там у тебя есть … Функциональный состав: если вы хотите использовать большую функцию для выполнения небольших функций, которые по существу выведут одну и ту же основную вещь.

Кроме того, забавный факт- вы были сбиты с толку! Если вы когда -либо использовали .map (), .split (), .join (), .reverse (), вы уже испытали функциональную композицию! Мы видим это в действии, когда используем методы JavaScript ВСЕ. А ВРЕМЯ.

Спасибо за чтение!

Если вы хотите поддерживать связь со мной, следуйте за мной Twitter ! DMS открыт.

Также Зарегистрируйтесь в моей бюллетене Где я даю вам советы/хитрости о том, как выжить в кодировании Bootcamp и Post-Bootcamp/Learning самостоятельно, поделившись некоторыми личными (иногда смущающими) историями!

Оригинал: “https://dev.to/cat/function-composition-explained-using-pokemon-evolution-1jhn”