最近、高階関数を勉強してその魅力にはまっているのですが、
かっこいい高階関数の例を教えてもらえませんか?
例えばこんなの。

(define (for-each-tree f g n tree)
 ;; depth-first
 (cond ((null? tree) n)
    ((not (list? tree)) (f tree))
    (else
     (g (for-each-tree f g n (car tree))
      (for-each-tree f g n (cdr tree))))))

(define (flat tree)
 (for-each-tree list append () tree))

(define (sum tree)
 (for-each-tree + + 0 tree))

(define (map-tree f tree)
 (for-each-tree f cons () tree))

(define tree '(1 (2 3) (4 (5 6) 7 ((8)) 9 10)))

> (flat tree)
(1 2 3 4 5 6 7 8 9 10)

> (sum tree)
55

> (map-tree - tree)
(-1 (-2 -3) (-4 (-5 -6) -7 ((-8)) -9 -10))