[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] ftl egg
From: |
Thomas Christian Chust |
Subject: |
Re: [Chicken-users] ftl egg |
Date: |
Fri, 29 Jun 2007 10:20:56 +0200 |
User-agent: |
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1.4) Gecko/20070509 SeaMonkey/1.1.2 |
Thomas Christian Chust wrote:
> [...]
> Additionally I suggest the following handy output and accumulator
> interfaces:
> [...]
I forgot to suggest the following algorithm:
;;; Map vectors to an equal size mutable vector.
(define (%v-map->%mv v mv)
(let ((v-length (%v-length v))
(v-ref (%v-ref v))
(make-mv (make-%mv mv))
(mv-set! (%mv-set! mv))
(list->min (%i->%a i=list a=min)))
(lambda (proc . vs)
(let ((min-length (list->min (map v-length vs))))
(do ((mvec (make-mv min-length))
(i 0 (fx+ i 1)))
((>= i min-length) mvec)
(mv-set! mvec i (apply proc (map (cut v-ref <> i) vs))))))))
cu,
Thomas
--
Murphy's Law is recursive. Washing your car to make it rain doesn't work.