typestar

Estadísticas de colección en Smalltalk

max, min, average, count: — las colecciones se responden solas.

"Collections answer their own statistics."
| runs |
runs := #(120 340 85 500 210).

Transcript show: 'Max: ', runs max printString; cr.
Transcript show: 'Min: ', runs min printString; cr.
Transcript show: 'Sum: ', (runs inject: 0 into: [:a :b | a + b])
    printString; cr.
Transcript show: 'Average: ', runs average printString; cr.

Transcript show: (runs count: [:n | n > 100]) printString,
    ' runs over 100'; cr.
Transcript show: (runs allSatisfy: [:n | n > 50]) printString; cr.
Transcript show: (runs anySatisfy: [:n | n > 450]) printString; cr.

Cómo funciona

  1. max y min no necesitan bucle.
  2. average responde una fracción exacta.
  3. count:, allSatisfy: y anySatisfy: toman predicados.

El intento, en números

Líneas
14
Caracteres a escribir
546
Tokens
124
Ritmo de tres estrellas
60 tpm

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

Escribe este fragmento

Paso 3 de 4 en Enumeración; paso 16 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →