17 lines
476 B
Plaintext
17 lines
476 B
Plaintext
(defun increment-alist (tbl key)
|
|
(cond ((endp tbl) (list (cons key 1)))
|
|
((eql (car (first tbl)) key)
|
|
(cons (cons key (1+ (cdr (first tbl))))
|
|
(rest tbl)))
|
|
(t (cons (first tbl)
|
|
(increment-alist (rest tbl) key)))))
|
|
|
|
(defun freq-table (xs)
|
|
(if (endp xs)
|
|
nil
|
|
(increment-alist (freq-table (rest xs))
|
|
(first xs))))
|
|
|
|
(defun letter-freq (str)
|
|
(freq-table (coerce str 'list)))
|