2010/03/25

find-fold/cps

ですです、これです!目が回ります・・・。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
;http://cametan-001.tumblr.com/post/470529715/cps-rt-valvallow
(define (find-fold/cps pred?/cps proc/cps seed lis cont)
  (null?/cps lis
      (lambda (result)
        (if result
     (cont seed)
     (pred?/cps (car lis)
         (lambda (result) ;テキストじゃここが抜けてる。ここがないとダメ。
         (if result
      (proc/cps (car lis)
         seed
         (lambda (seed2)
           (find-fold/cps pred?/cps proc/cps seed2 (cdr lis) cont)))
      (find-fold/cps pred?/cps proc/cps seed (cdr lis) cont))))))))


まあ、ホントの事言うと、プログラミングGaucheのあの例が適切で分かりやすいもの選んでるのか、って言うと疑問なんですけどね。
これは私も、もちょっとシンプルな例はなかったのかなー、と思いました。
書けたとしても書く気にはなれないコードだなと。

プログラミングGauche

0 件のコメント:

コメントを投稿