typestar

count, any, all, pack en Fortran

Cuatro preguntas hechas a un arreglo de sitios de buceo a través de máscaras lógicas.

program pack_count
    implicit none
    integer :: depths(8) = [3, 41, 12, 55, 8, 47, 22, 61]

    ! count, any, and all ask questions of a logical mask.
    print *, "deep sites:    ", count(depths > 40)
    print *, "any shallow?   ", any(depths < 5)
    print *, "all divable?   ", all(depths < 70)
    ! pack keeps just the elements the mask selects.
    print *, "the deep ones: ", pack(depths, depths > 40)
end program pack_count

Cómo funciona

  1. count(depths > 40) cuenta los sitios profundos sin bucle.
  2. any y all reducen una máscara a un solo sí o no.
  3. pack(depths, mask) conserva solo los elementos seleccionados, como arreglo más chico.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
11
Caracteres a escribir
404
Tokens
79
Ritmo de tres estrellas
65 tpm

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

Escribe este fragmento

Paso 3 de 3 en Arreglos completos; paso 12 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →