typestar

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

  1. record pool species son dos funciones anidadas de un argumento.
  2. record "north" hornea el pool y devuelve el resto.
  3. Anotaciones como (pools : int) son legales; la inferencia suele ganar.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

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

← Anterior Siguiente →