http://www.yotabanana.com/lab/20060120.html#p01」の Ruby スクリプトScheme で書いたらどうなるか。ただの翻訳ではつまらないので、クロージャも取り混ぜてみる。

#!/usr/bin/env gosh

;; カウンタクロージャを保管する
(define *counters* (make-hash-table 'string=?))

;; ref に対応するカウンタクロージャを返すか、無ければつくる。
(define (get-counter ref)
  (or (hash-table-get *counters* ref #f)
      (let ((c (make-counter)))
        (hash-table-put! *counters* ref c)
        c)))

;; カウンタクロージャをつくる。評価されるたびに count をインクリメント。
(define (make-counter)
  (let ((count 0))
    (lambda ()
      (set! count (+ 1 count))
      count)))

;; ref に対応するカウンタを評価して10以下なら許可
(define (allow? ref)
  (let ((c (get-counter ref)))
    (>= 10 (c))))

(define (test)
  (dotimes (i 10000)
    (dotimes (j 15)
      (allow? #`"http://www.hatena.ne.jp/,|i|")
      (allow? #`"http://yahoo.com/,|i|")
      (allow? #`"http://www.google.com/,|i|"))))

(define (main args)
  (use gauche.time)
  (time (test)))

残年ながらリンク元へはトラックバックできないようです。