yuu_nkjm blog
2014-09-14(Sun) 編集
[Kawa][Scheme] パラメータオブジェクト
SRFI 39: Parameter objectsのKawaの実装Kawa: Parameter objectsがバグってる?Kawa2.0でもこうなった.
(define radix
(make-parameter 10))
(radix) ;; → 10
(radix 2) ;; → 2
(radix) ;; → 2
(define (f n)
(number->string n (radix)))
(define prompt
(make-parameter
123
(lambda (x) x)))
(prompt) ;; → 123
(prompt "|") ;; →
(prompt) ;; → |
(f 10) ;; → 1010 (基数2で10を表記)
(parameterize ((radix 8)) (f 10)) ;; → 1010 (基数8に設定.でもそれが見えるのはbody以降)
(parameterize ((radix 8) (prompt (f 10))) (prompt)) ;; → 12 (これって1010になるはずじゃない?)