Scheme 练习 - 统计字符串中每个字符出现的次数

练一下 Scheme 中 Hash table 的简单用法。

#lang racket

(define (count-characters astr)
  (begin
    (define ht (make-hash))
    (map (lambda (c)
           (hash-set! ht c
                      (+ 1 (hash-ref ht c 0)))) 
         (string->list astr)))
  ht)

(display (count-characters "asdfjghasdfjaskdjhasdfkjhasdf"))
#hash((k . 2) (j . 4) (h . 3) (g . 1) (f . 4) (d . 5) (s . 5) (a . 5))

 

posted @ 2013-07-01 21:58  woodfox  阅读(201)  评论(0编辑  收藏  举报