2007-01-31 [長年日記]

_ [Programming][Scheme] 継続ってコールバック?

The Little Schemer の継続の例題がどうもコールバック関数にしか見えないんですが…。
(define multirember&co
  (lambda (a lat col)
    (cond ((null? lat) 
           (col '() '()))
          ((eq? (car lat) a)
           (multirember&co a (cdr a) 
                           (lambda (newlat seen)
                             (col newlat (cons (car lat) seen)))))
          (else (multirember&co a (cdr lat)
                           (lambda (newlat seen)
                             (col (cons (car lat) newlat) seen)))))))
(define a-friend
  (lambda (x y)
    (null? y)))
(multirember&co 'tuna '(strawberries tuna and swordfish) a-friend)
lat の終端にきたら関数 col を動かしてねー。状態を保持しつづけているのでクロージャの連続ですが…。 たぶん継続の真髄は The Seasoned Schemer に載っているのでしょうが、 現在、The Little Schemer の第9章です。頑張ります。
本日のツッコミ(全1件) [ツッコミを入れる]
_ Naruto (2007-02-24 13:39)

これはあれですね。"継続"じゃなくて"継続渡しスタイル"ってやつです。

[]

«前の日記(2006-12-31) 最新 次の日記(2007-02-01)»