typestar

tally y slices en Ruby

Conteo y ventanas integrados directo en Enumerable.

rolls = [4, 2, 6, 4, 4, 2, 1, 6]

puts rolls.tally.inspect
puts rolls.each_slice(3).to_a.inspect

# each_cons recorre ventanas que se solapan; cuenta las subidas
puts rolls.each_cons(2).count { |a, b| b > a }

letters = "mississippi".chars
puts letters.tally.max_by { |_, n| n }.inspect
puts letters.chunk_while { |a, b| a == b }.map(&:join).inspect

Cómo funciona

  1. tally cuenta las ocurrencias en un hash con una sola llamada.
  2. each_slice trocea una lista; each_cons recorre ventanas superpuestas.
  3. chunk_while agrupa vecinos que satisfacen el bloque.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
11
Caracteres a escribir
349
Tokens
101
Ritmo de tres estrellas
70 tpm

Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 87 segundos.

Escribe este fragmento

Paso 2 de 3 en Enumerable; paso 14 de 29 en Fundamentos del lenguaje.

← Anterior Siguiente →