typestar

map y filter en Haskell

map reescribe cada elemento, filter conserva los que pasan y (.) encadena los dos en un pipeline.

-- map applies a named function to every element, one at a time
restock :: Int -> Int
restock n = n + 12

-- a section is a half-applied operator: (< 5) still wants a left side
lowStock :: [Int] -> [Int]
lowStock = filter (< 5)

-- (.) chains them: filter runs first, then map, reading right to left
topUp :: [Int] -> [Int]
topUp = map restock . lowStock

main :: IO ()
main = do
  let shelf = [2, 8, 4, 11, 1] :: [Int]
  print (map (* 2) shelf)
  print (lowStock shelf)
  print (topUp shelf)

Cómo funciona

  1. map restock le entrega cada elemento a la función restock, que le suma 12.
  2. lowStock = filter (< 5) usa una sección: un operador con un lado ya dado, esperando todavía el otro.
  3. topUp = map restock . lowStock filtra antes de mapear, y main aplica además la sección en línea map (* 2).

Palabras clave y builtins usados aquí

El intento, en números

Líneas
18
Caracteres a escribir
484
Tokens
89
Ritmo de tres estrellas
75 tpm

Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 71 segundos.

Escribe este fragmento

Paso 1 de 3 en Orden superior; paso 13 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →