each y map en Ruby
Los dos iteradores con los que empieza todo programa Ruby.
words = %w[typing at the speed of thought]
words.each { |w| puts w }
lengths = words.map { |w| w.length }
puts lengths.inspect
# &:sym es la forma corta cuando el bloque solo llama a un método
puts words.map(&:upcase).inspect
puts words.each_with_index.map { |w, i| "#{i}: #{w}" }.inspect
Cómo funciona
eachvisita cada elemento; el bloque hace el trabajo.mapconstruye un arreglo nuevo con cada resultado del bloque.map(&:upcase)es el atajo cuando el bloque solo llama a un método.each_with_indexempareja los elementos con sus posiciones.
Palabras clave y builtins usados aquí
puts
El intento, en números
- Líneas
- 11
- Caracteres a escribir
- 292
- Tokens
- 67
- Ritmo de tres estrellas
- 85 tpm
Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 47 segundos.
Paso 1 de 3 en Bloques e iteradores; paso 10 de 29 en Fundamentos del lenguaje.