freeCodeCamp/curriculum/challenges/spanish/02-javascript-algorithms-an.../functional-programming/understand-functional-progr...

4.3 KiB
Raw Blame History

id title localeTitle challengeType
587d7b8e367417b2b2512b5c Understand Functional Programming Terminology Entender la terminología de programación funcional 1

Description

El equipo de la FCC tuvo un cambio de humor y ahora quiere dos tipos de té: té verde y té negro. Hecho general: los cambios de humor del cliente son bastante comunes. Con esa información, tendremos que revisar la función getTea del último desafío para manejar varias solicitudes de té. Podemos modificar getTea para aceptar una función como parámetro para poder cambiar el tipo de té que prepara. Esto hace que getTea sea más flexible y le da al programador más control cuando cambian las solicitudes de los clientes. Pero primero, vamos a cubrir algunos términos funcionales: Callbacks son las funciones que se deslizan o pasan a otra función para decidir la invocación de esa función. Es posible que los haya visto pasar a otros métodos, por ejemplo, en el filter , la función de devolución de llamada le dice a JavaScript los criterios sobre cómo filtrar una matriz. funciones que pueden asignarse a una variable, pasarse a otra función o devolverse desde otra función como cualquier otro valor normal, se denominan funciones de first class . En JavaScript, todas las funciones son funciones de first class . Las funciones que toman una función como argumento o que devuelven una función como valor de retorno se denominan funciones de higher order . Cuando las funciones se pasan a otra función o se devuelven desde otra función, las funciones que se pasan o devuelven pueden llamarse lambda .

Instructions

Prepare 27 tazas de té verde y 13 tazas de té negro y almacénelas en las variables tea4GreenTeamFCC y tea4BlackTeamFCC , respectivamente. Tenga en cuenta que la función getTea se ha modificado, por lo que ahora toma una función como primer argumento. Nota: Los datos (el número de tazas de té) se proporcionan como el último argumento. Discutiremos esto más en lecciones posteriores.

Tests

tests:
  - text: La variable <code>tea4GreenTeamFCC</code> debe contener 27 tazas de té verde para el equipo.
    testString: 'assert(tea4GreenTeamFCC.length === 27, "The <code>tea4GreenTeamFCC</code> variable should hold 27 cups of green tea for the team.");'
  - text: La variable <code>tea4GreenTeamFCC</code> debe contener tazas de té verde.
    testString: 'assert(tea4GreenTeamFCC[0] === "greenTea", "The <code>tea4GreenTeamFCC</code> variable should hold cups of green tea.");'
  - text: La variable <code>tea4BlackTeamFCC</code> debe contener 13 tazas de té negro.
    testString: 'assert(tea4BlackTeamFCC.length === 13, "The <code>tea4BlackTeamFCC</code> variable should hold 13 cups of black tea.");'
  - text: La variable <code>tea4BlackTeamFCC</code> debe contener tazas de té negro.
    testString: 'assert(tea4BlackTeamFCC[0] === "blackTea", "The <code>tea4BlackTeamFCC</code> variable should hold cups of black tea.");'

Challenge Seed

/**
 * A long process to prepare green tea.
 * @return {string} A cup of green tea.
 **/
const prepareGreenTea = () => 'greenTea';

/**
 * A long process to prepare black tea.
 * @return {string} A cup of black tea.
 **/
const prepareBlackTea = () => 'blackTea';

/**
 * Get given number of cups of tea.
 * @param {function():string} prepareTea The type of tea preparing function.
 * @param {number} numOfCups Number of required cups of tea.
 * @return {Array<string>} Given amount of tea cups.
 **/
const getTea = (prepareTea, numOfCups) => {
  const teaCups = [];

  for(let cups = 1; cups <= numOfCups; cups += 1) {
    const teaCup = prepareTea();
    teaCups.push(teaCup);
  }

  return teaCups;
};

// Add your code below this line

const tea4GreenTeamFCC = null; // :(
const tea4BlackTeamFCC = null; // :(

// Add your code above this line

console.log(
  tea4GreenTeamFCC,
  tea4BlackTeamFCC
);

Solution

// solution required