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