リストlisと述語手続きpredを取り、lisの各要素に順にpredを適用して、 predが真の値を返したら直ちにその要素を返すような関数fi nd
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; filter-break | |
(define (filter-break pred? ls) | |
(if (null? ls) | |
#f | |
(if (pred? (car ls)) | |
(car ls) | |
(filter-break pred? (cdr ls))))) | |
(filter-break odd? '(2 2 2 3 4 4 4)) | |
; -> 3 | |
(define (filter-break pred? ls) | |
(let/cc skip | |
(fold (lambda (e r) | |
(if (pred? e) | |
(skip e) | |
r)) | |
#f ls))) | |
(filter-break odd? '(2 2 2 3 4 4 4)) | |
; -> 3 |
0 件のコメント:
コメントを投稿