Sha256: 7f162403ee84335b680915d548073d4bd3591d0453a3806bf5a0b90e49e6d1d8

Contents?: true

Size: 522 Bytes

Versions: 349

Compression:

Stored size: 522 Bytes

Contents

import
  critbits, strutils

type TWordCount* = CritBitTree[int]
  ## A mapping from strings (`words`) to ints (`counts`).

iterator words(s: string): string =
  for word in s.split(AllChars - Letters - Digits - {'\0'}):
    yield toLower(word)

proc wordCount*(s: string): TWordCount {.noSideEffect.} =
  ## Returns a mapping from the words (alphanumeric sequences) in `s` to their
  ## respective counts.
  for word in words(s):
    if not result.hasKey(word):
      result[word] = 0
    result[word] = result[word] + 1

Version data entries

349 entries across 349 versions & 1 rubygems

Version Path
trackler-2.2.1.111 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.110 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.109 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.108 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.107 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.106 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.105 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.104 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.103 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.102 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.101 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.100 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.99 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.98 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.97 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.96 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.95 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.94 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.93 tracks/nim/exercises/word-count/example.nim
trackler-2.2.1.92 tracks/nim/exercises/word-count/example.nim