Danny, It's a really amazing function.
I wonder when keyword arguments are passed into a procedure, are those arguments sorted by evaluator? John, I never use match liking this. I really should re-read match manual again. Thanks, Haiwei On 18 December 2012 15:11, Danny Yoo <d...@hashcollision.org> wrote: > The function I provided for hash->keyword-apply is unfortunately > broken; I forgot that there's a requirement on the order of the > keywords we pass to it. Here's a revised version: > > > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; > (define (hash->keyword-apply f a-hash [rest-args '()]) > (define-values (keys vals) > (for/fold ([keys '()] [vals '()]) > ([k (sort (hash-keys a-hash) string>? #:key symbol->string)]) > (values (cons (string->keyword (symbol->string k)) keys) > (cons (hash-ref a-hash k) vals)))) > (keyword-apply f keys vals rest-args)) > ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; >
____________________ Racket Users list: http://lists.racket-lang.org/users