typestar

Currificación y aplicación parcial en Haskell

Una calculadora de propinas que entrega funciones a medio aplicar en vez de números.

-- Every function takes one argument and returns a function.
module Tipping where

addTip :: Double -> Double -> Double
addTip rate amount = amount * (1 + rate)

-- Supply only the rate and a Double -> Double is left waiting.
standardTip :: Double -> Double
standardTip = addTip 0.18

checks :: [Double]
checks = [12.0, 31.5, 8.25]

-- Partials go straight into map; (* 100) is an operator section.
withTips :: [Double]
withTips = map standardTip checks

inCents :: [Double]
inCents = map (* 100) (map (addTip 0.25) checks)

Cómo funciona

  1. addTip rate amount toma sus argumentos de a uno y no como un par.
  2. standardTip = addTip 0.18 fija la tasa y deja atrás un Double -> Double.
  3. map standardTip checks le pasa una parcial a map, y (* 100) es una sección de operador.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
523
Tokens
77
Ritmo de tres estrellas
75 tpm

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

Escribe este fragmento

Paso 2 de 3 en Funciones; paso 5 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →