Arreglos y seqs en F#
Los arreglos indexan y mutan; las seqs son vistas perezosas.
// Arrays are mutable and indexed; seqs are lazy views over anything.
let readings = [| 33.1; 32.7; 32.9; 31.8 |]
readings.[0] <- 33.4
printfn "First reading now %.1f" readings.[0]
printfn "Array average: %.2f" (Array.average readings)
// A seq computes on demand; the pipeline decides how much to pull.
let cooling =
readings
|> Seq.pairwise
|> Seq.filter (fun (a, b) -> b < a)
|> Seq.length
printfn "Cooling steps: %d" cooling
printfn "As a list: %A" (readings |> Array.toList |> List.truncate 2)
Cómo funciona
.[0] <-escribe en el lugar — el arreglo es la colección mutable.Seq.pairwiserecorre vecinos sin materializar.- Conversiones como
Array.toListcruzan entre familias.
Palabras clave y builtins usados aquí
funlet
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 499
- Tokens
- 104
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 96 segundos.
Paso 3 de 3 en Colecciones; paso 18 de 27 en Fundamentos del lenguaje.