When writing a natural extension to racket/base for hashes, hash-filter-map, I 
found that what would be the most natural way to write it would look like so:

(define (hash-filter-map f ht)
  (for/list ([(k v) (in-hash ht)]
             #:when/bind [res (f k v)])
     res))

Instead I had to write

(define (hash-filter-map f ht)
  (for/fold ([result '()])
            ([(k v) (in-hash ht)]
    (cond [(f k v) => (lambda (temp) (cons temp result))]
          [else result])))

Which is less pretty.
I'd add this myself, but the for macros are scary. Anyone familiar with this 
section of code willing to add this?

-Ian
_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev

Reply via email to