Sha256: e67b33cb77d7b61f52b2295a63b648b4a2433149a7098f3289ccd53bd7f3c5b0

Contents?: true

Size: 776 Bytes

Versions: 134

Compression:

Stored size: 776 Bytes

Contents

(define-module (word-count)
  #:use-module (srfi srfi-1)
  #:use-module (ice-9 regex)
  #:export (countwords))


(define (countword word counters)
  (let* ((oldcount (assoc-ref counters word))
         (newcount (if oldcount (+ oldcount 1) 1)))
    (assoc-set! counters word newcount)))


(define (replace text pattern replacement)
  (regexp-substitute/global #f pattern text 'pre replacement 'post))


(define (normalize phrase)
  (let* ((nopuncts (replace phrase "[.,\n!&@%:^$]" " "))
         (onespace (replace nopuncts "[ ]+" " "))
         (endspace (replace onespace "[ ]+$" ""))
         (noquotes (replace endspace "( ')|(' )" " ")))
    (string-downcase noquotes)))


(define (countwords phrase)
  (fold countword '()
    (string-split (normalize phrase) #\space)))

Version data entries

134 entries across 134 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.179 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.178 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.177 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.176 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.175 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.174 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.173 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.172 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.171 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.170 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.169 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.167 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.166 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.165 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.164 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.163 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.162 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.161 tracks/scheme/exercises/word-count/example.scm
trackler-2.2.1.160 tracks/scheme/exercises/word-count/example.scm