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
count(depths > 40)cuenta los sitios profundos sin bucle.anyyallreducen una máscara a un solo sí o no.pack(depths, mask)conserva solo los elementos seleccionados, como arreglo más chico.
Palabras clave y builtins usados aquí
allanycountendimplicitintegernonepackprintprogram
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.
Paso 3 de 3 en Arreglos completos; paso 12 de 27 en Fundamentos del lenguaje.