typestar

Cadenas y caracteres en Haskell

Rearma el anuncio de una puerta de embarque, porque un String no es más que una lista de caracteres.

-- A String is exactly [Char], so every list function already works.
module Announcement where

import Data.Char (isDigit, toUpper)

headline :: String
headline = "gate 7 boards at 1450"

-- words splits on whitespace; unwords glues the pieces back together.
pieces :: [String]
pieces = words headline

shouted :: String
shouted = unwords (map (map toUpper) pieces)

digitsOnly :: String
digitsOnly = filter isDigit headline

banner :: String
banner = shouted ++ " [" ++ digitsOnly ++ "]"

Cómo funciona

  1. words headline parte la línea por los espacios y unwords vuelve a pegar las piezas.
  2. map (map toUpper) pieces atraviesa la lista de cadenas hasta llegar a cada Char.
  3. filter isDigit headline deja solo los dígitos, con una función de listas cualquiera.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
488
Tokens
67
Ritmo de tres estrellas
75 tpm

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

Escribe este fragmento

Paso 3 de 3 en Valores y tipos; paso 3 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →