私はスキームに機能を持っています
(define (m-m f)
(let ((count 0))
(define (h-m-c?) count)
(define (r-c) (begin (set! count 0) count))
(define (m-f m)
(cond ((eq? m 'h-m-c?) (h-m-c))
((eq? m 'r-c) (r-c))
(else (set! count (+ 1 count)) f)))
m-f))
ここで、mf は返される関数です。
ただし、値を返すのではなく、
#<procedure:m-f>
コードにエラーがないように見えるのに、なぜこれが使用可能な値を返さないのでしょうか?