Menu
Coddy logo textTech

Resumen - Pipeline Builder

Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 43 de 56.

challenge icon

Desafío

Intermedio

Construye una pequeña canalización de datos (pipeline) impulsada por clausuras (closures).

Lee tres líneas:

  1. Un entero min
  2. Un entero scale
  3. Una lista de enteros separados por comas

Define dos fábricas de clausuras:

  • makeFilter(min: Int) -> (Int) -> Bool captura min y devuelve un predicado n > min
  • makeScaler(by: Int) -> (Int) -> Int captura by y devuelve una función que multiplica por él

Luego define una función pipeline(_ nums: [Int], filter: (Int) -> Bool, transform: (Int) -> Int) -> [Int] que primero filtra y luego transforma.

Imprime tres líneas:

  1. Los números que sobrevivieron al filtro, unidos con ,
  2. Los mismos números después de la escala, unidos con ,
  3. La suma de los valores escalados

Para la entrada 5 / 3 / 2,7,3,8,9, la salida es:

7,8,9
21,24,27
72

Pruébalo tú mismo

let minVal = Int(readLine()!)!
let scale = Int(readLine()!)!
let nums = readLine()!.components(separatedBy: ",").map { Int($0)! }

// TODO: makeFilter / makeScaler que devuelvan clausuras; pipeline(_:filter:transform:);
// luego imprimir los filtrados, los escalados y la suma de los escalados

Todas las lecciones de Lógica y Flujo