Change order of arguments to VECTOR-MAP.
authorChris Hanson <org/chris-hanson/cph>
Mon, 8 Nov 1999 18:23:39 +0000 (18:23 +0000)
committerChris Hanson <org/chris-hanson/cph>
Mon, 8 Nov 1999 18:23:39 +0000 (18:23 +0000)
v7/doc/ref-manual/scheme.texinfo
v7/src/runtime/vector.scm

index bc50098d9dc36d41ade4b7c69d8647f8c19892dc..a14e07480ca89f7c5b3287e75d79d7e88bc40eb7 100644 (file)
@@ -2,7 +2,7 @@
 @iftex
 @finalout
 @end iftex
-@comment $Id: scheme.texinfo,v 1.80 1999/08/20 20:52:45 cph Exp $
+@comment $Id: scheme.texinfo,v 1.81 1999/11/08 18:23:39 cph Exp $
 @comment %**start of header (This is for running Texinfo on a region.)
 @setfilename scheme.info
 @settitle MIT Scheme Reference
@@ -7850,7 +7850,7 @@ initialized from the corresponding elements of @var{vector}.  The
 remaining elements of the result are unspecified.
 @end deffn
 
-@deffn {procedure+} vector-map vector procedure
+@deffn {procedure+} vector-map procedure vector
 @cindex mapping, of vector
 @var{Procedure} must be a procedure of one argument.  @code{vector-map}
 applies @var{procedure} element-wise to the elements of @var{vector} and
@@ -7860,10 +7860,10 @@ elements of @var{vector} is unspecified.
 
 @example
 @group
-(vector-map '#((a b) (d e) (g h)) cadr)     @result{}  #(b e h)
-(vector-map '#(1 2 3 4) (lambda (n) (expt n n)))
+(vector-map cadr '#((a b) (d e) (g h)))     @result{}  #(b e h)
+(vector-map (lambda (n) (expt n n)) '#(1 2 3 4))
                                             @result{}  #(1 4 27 256)
-(vector-map '#(5 7 9) +)                    @result{}  #(5 7 9)
+(vector-map + '#(5 7 9))                    @result{}  #(5 7 9)
 @end group
 @end example
 @end deffn
index 7ddcf8b6f8ad217b36e23c0324d9cb55d8262ffc..7bec8eea7090f33ca319cb15f9c6e435e4bca8b5 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: vector.scm,v 14.12 1999/01/02 06:19:10 cph Exp $
+$Id: vector.scm,v 14.13 1999/11/08 18:22:52 cph Exp $
 
 Copyright (c) 1988-1999 Massachusetts Institute of Technology
 
@@ -110,20 +110,24 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
            (loop (fix:+ index 1)))))
     vector))
 
-(define (vector-map vector procedure)
-  (guarantee-vector vector 'VECTOR-MAP)
-  (let ((length (vector-length vector)))
-    (if (fix:= 0 length)
-       vector
-       (let ((result (make-vector length)))
-         (let loop ((index 0))
-           (if (fix:< index length)
-               (begin
-                 (vector-set! result
-                              index
-                              (procedure (vector-ref vector index)))
-                 (loop (fix:+ index 1)))))
-         result))))
+(define (vector-map procedure vector)
+  (if (and (vector? procedure) (procedure? vector))
+      ;; KLUDGE: accept arguments in old order.
+      (vector-map vector procedure)
+      (begin
+       (guarantee-vector vector 'VECTOR-MAP)
+       (let ((length (vector-length vector)))
+         (if (fix:= 0 length)
+             vector
+             (let ((result (make-vector length)))
+               (let loop ((index 0))
+                 (if (fix:< index length)
+                     (begin
+                       (vector-set! result
+                                    index
+                                    (procedure (vector-ref vector index)))
+                       (loop (fix:+ index 1)))))
+               result))))))
 
 (define (for-each-vector-element vector procedure)
   (guarantee-vector vector 'FOR-EACH-VECTOR-ELEMENT)