[r6rs-discuss] Multiple returns from higher-order procedures

From: Jed Davis <r6rs>
Date: Tue, 26 Jun 2007 20:58:40 -0400

On Sun, Jun 24, 2007 at 07:27:42PM -0400, William D Clinger wrote:
> truth truth2 peak space
>
> vector-map (consing) 38.8 43.2 12000
> rec-vector-map (recursive) 40.6 46.0 36000
> rec4-vector-map (unrolled 4 times) 28.4 29.3 18000 (*)
> rec8-vector-map (unrolled 8 times) 24.5 28.8 11000
> buggy-vector-map 25.5 30.1 4000

Perhaps I'm missing something, but wouldn't

(define (vector-map . args)
  (vector-copy (apply buggy-vector-map args)))

satisfy the requirements of R5.95RS? It seems unrepresented in the
above, if I've correctly inferred the terms under test.

-- 
(let ((C call-with-current-continuation)) (apply (lambda (x y) (x y)) (map
((lambda (r) ((C C) (lambda (s) (r (lambda l (apply (s s) l))))))  (lambda
(f) (lambda (l) (if (null? l) C (lambda (k) (display (car l)) ((f (cdr l))
(C k)))))))    '((#\J #\d #\D #\v #\s) (#\e #\space #\a #\i #\newline)))))
Received on Tue Jun 26 2007 - 20:58:40 UTC

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:01 UTC