Vistas con Span en Mojo
Un Span toma prestada una ventana sobre una lista, sin copiar nada de ella.
def total(values: Span[Int, _]) -> Int:
var sum = 0
for value in values:
sum += value
return sum
def main():
var samples = [3, 1, 4, 1, 5, 9, 2, 6]
print(total(Span(samples)))
print(total(Span(samples)[2:5]))
var window = Span(samples)[0:3]
window[0] = 100
print(samples[0])
Cómo funciona
Span[Int, _]deja el origen sin fijar, así que se le puede pasar cualquier lista.- Rebanar un span angosta la ventana a un subrango.
- Escribir a través del span muta la lista original.
Palabras clave y builtins usados aquí
Intdefforprintreturnsumvar
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 276
- Tokens
- 96
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 82 segundos.
Paso 4 de 4 en Memoria; paso 20 de 22 en Parámetros y SIMD.