El módulo List en OCaml
map, filter, sort, fold_left: el kit de todos los días.
(* The List module is the daily toolkit: map, filter, sort. *)
let survey = [("north", 12); ("ledge", 31); ("cove", 5)]
let () =
survey
|> List.sort (fun (_, a) (_, b) -> compare b a)
|> List.iter (fun (pool, n) -> Printf.printf "%-6s %3d\n" pool n);
let total = List.fold_left (fun acc (_, n) -> acc + n) 0 survey in
Printf.printf "Total animals: %d\n" total;
let busy = List.filter (fun (_, n) -> n > 10) survey in
busy |> List.map fst |> String.concat ", "
|> Printf.printf "Above ten: %s\n"
Cómo funciona
List.sorttoma un comparador; invertirlo ordena descendente.fold_leftsuma un campo a través de tuplas.filtery luegomap fstextraen los nombres de pools activos.
Palabras clave y builtins usados aquí
funinlet
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 497
- Tokens
- 156
- Ritmo de tres estrellas
- 60 tpm
Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 156 segundos.
Paso 2 de 4 en Listas; paso 12 de 29 en Fundamentos del lenguaje.