typestar

Composición y @@ en OCaml

Arma funciones desde funciones; @@ ahorra el último paréntesis.

(* @@ applies without parentheses; composition is a one-liner away. *)
let compose f g x = f (g x)

let cm_of_m m = m *. 100.0
let readable cm = Printf.sprintf "%.0f cm" cm
let describe = compose readable cm_of_m

let () =
  print_endline (describe 0.65);
  print_endline (describe 1.2);
  (* @@ saves the closing paren on the last argument. *)
  print_endline @@ describe 0.08;
  Printf.printf "Deep end: %s\n" @@ readable @@ cm_of_m 1.5

Cómo funciona

  1. compose f g x = f (g x) es la definición completa.
  2. El describe compuesto aplica como cualquier función.
  3. print_endline @@ describe 0.08 ahorra los paréntesis envolventes.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
13
Caracteres a escribir
428
Tokens
84
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 78 segundos.

Escribe este fragmento

Paso 3 de 4 en Funciones; paso 6 de 29 en Fundamentos del lenguaje.

← Anterior Siguiente →