Changeset 12516 for trunk/abcl/src/org/armedbear/lisp/replace.lisp
- Timestamp:
- 03/03/10 21:05:41 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/replace.lisp
r11391 r12516 34 34 (in-package #:system) 35 35 36 (eval-when (:compile-toplevel :load-toplevel :execute) 36 (require "EXTENSIBLE-SEQUENCES-BASE") 37 38 #|(eval-when (:compile-toplevel :load-toplevel :execute) 37 39 (defmacro seq-dispatch (sequence list-form array-form) 38 40 `(if (listp ,sequence) 39 41 ,list-form 40 ,array-form))) 42 ,array-form)))|# 41 43 42 44 (eval-when (:compile-toplevel :execute) … … 146 148 (mumble-replace-from-mumble)) 147 149 148 (defun %replace (target-sequence source-sequence target-start target-end source-start source-end)149 (declare (type (integer 0 #.most-positive-fixnum) target-start target-end source-start source-end))150 (seq-dispatch target-sequence151 (seq-dispatch source-sequence152 (list-replace-from-list)153 (list-replace-from-mumble))154 (seq-dispatch source-sequence155 (mumble-replace-from-list)156 (mumble-replace-from-mumble))))157 158 150 ;;; REPLACE cannot default end arguments to the length of sequence since it 159 151 ;;; is not an error to supply nil for their values. We must test for ends 160 152 ;;; being nil in the body of the function. 161 (defun replace (target-sequence source-sequence & key153 (defun replace (target-sequence source-sequence &rest args &key 162 154 ((:start1 target-start) 0) 163 155 ((:end1 target-end)) … … 168 160 (let ((target-end (or target-end (length target-sequence))) 169 161 (source-end (or source-end (length source-sequence)))) 170 (%replace target-sequence source-sequence target-start target-end source-start source-end))) 162 (declare (type (integer 0 #.most-positive-fixnum) target-start target-end source-start source-end)) 163 (sequence::seq-dispatch target-sequence 164 (sequence::seq-dispatch source-sequence 165 (list-replace-from-list) 166 (list-replace-from-mumble) 167 (apply #'sequence:replace target-sequence source-sequence args)) 168 (sequence::seq-dispatch source-sequence 169 (mumble-replace-from-list) 170 (mumble-replace-from-mumble) 171 (apply #'sequence:replace target-sequence source-sequence args)) 172 (apply #'sequence:replace target-sequence source-sequence args))))
Note: See TracChangeset
for help on using the changeset viewer.