Currificación en OCaml
Cada función toma un argumento; la aplicación parcial es gratis.
(* Every function takes one argument; more means curried. *)
let record pool species =
Printf.sprintf "%s spotted in the %s pool" species pool
(* Partial application bakes in the first argument. *)
let at_north = record "north"
let () =
print_endline (at_north "anemone");
print_endline (at_north "limpet");
print_endline (record "ledge" "sea star")
(* Annotations are legal but inference usually carries the day. *)
let quadrats (pools : int) : int = pools * 4
let () = Printf.printf "Quadrats: %d\n" (quadrats 6)
Cómo funciona
record pool speciesson dos funciones anidadas de un argumento.record "north"hornea el pool y devuelve el resto.- Anotaciones como
(pools : int)son legales; la inferencia suele ganar.
Palabras clave y builtins usados aquí
intlet
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 517
- Tokens
- 85
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 78 segundos.
Paso 1 de 4 en Funciones; paso 4 de 29 en Fundamentos del lenguaje.