typestar

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

  1. List.sort toma un comparador; invertirlo ordena descendente.
  2. fold_left suma un campo a través de tuplas.
  3. filter y luego map fst extraen los nombres de pools activos.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 4 en Listas; paso 12 de 29 en Fundamentos del lenguaje.

← Anterior Siguiente →