typestar

Broadcasting en Julia

Un punto vectoriza cualquier función u operador.

mags = [1.2, 3.8, 5.5, 6.9]

# A dot broadcasts any function or operator over each element.
fluxes = 10.0 .^ (-0.4 .* mags)
println(round.(fluxes, digits = 4))

# Comparisons broadcast too, giving a Bool mask.
visible = mags .<= 6.0
println(visible)
println(count(visible), " of ", length(mags), " visible")

# @. dots an entire expression at once.
shifted = @. sqrt(mags + 1)
println(round.(shifted, digits = 2))

Cómo funciona

  1. 10.0 .^ (-0.4 .* mags) aplica elemento a elemento, sin bucle.
  2. mags .<= 6.0 difunde una comparación en una máscara de Bool.
  3. @. pone el punto en cada llamada de la expresión de una vez.

El intento, en números

Líneas
14
Caracteres a escribir
413
Tokens
86
Ritmo de tres estrellas
60 tpm

Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 86 segundos.

Escribe este fragmento

Paso 1 de 3 en Broadcasting; paso 13 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →

Broadcasting en otros lenguajes