typestar

El pipeline en OCaml

|> alimenta el valor izquierdo hacia adelante; los datos se leen en orden.

(* |> feeds the left value forward: data reads in flow order. *)
let counts = [12; 5; 31; 8; 19]

let busy_pools =
  counts
  |> List.filter (fun c -> c > 10)
  |> List.length

let () =
  Printf.printf "Pools above ten animals: %d\n" busy_pools;
  (* The pipeless version reads inside out. *)
  Printf.printf "Total: %d\n" (List.fold_left ( + ) 0 counts);
  counts |> List.map string_of_int |> String.concat ", "
         |> print_endline

Cómo funciona

  1. counts |> List.filter ... |> List.length se lee como oración.
  2. La versión sin pipe anida de adentro hacia afuera.
  3. Los pipelines terminan donde quepa una función, hasta print_endline.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
14
Caracteres a escribir
415
Tokens
90
Ritmo de tres estrellas
65 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →