word_freq.jl en Julia
Una tabla de frecuencias con split, un Dict de conteo y una clave doble.
# Count word frequencies in a passage and chart the leaders.
using Printf
passage = "the rain in maine falls mainly on the plain and " *
"the rain stays on the plain"
# Tally every word; get with a default covers first sightings.
counts = Dict{String,Int}()
for word in split(passage)
counts[word] = get(counts, word, 0) + 1
end
# Rank the entries, biggest first, ties broken by the word itself.
ranked = sort(collect(counts), by = p -> (-p.second, p.first))
println(length(ranked), " distinct words")
println("word ct bar")
for (word, n) in ranked
@printf("%-7s %2d %s\n", word, n, "#"^n)
end
Cómo funciona
splitparte el pasaje;get(counts, word, 0) + 1cuenta.- Ordenar por
(-p.second, p.first)clasifica con empates alfabéticos. "#"^ndibuja la barra de cada palabra bajo columnas de @printf.
Palabras clave y builtins usados aquí
DictIntStringendforinusing
El intento, en números
- Líneas
- 21
- Caracteres a escribir
- 601
- Tokens
- 116
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 107 segundos.
Paso 1 de 3 en Bis; paso 25 de 27 en Fundamentos del lenguaje.