Mercurial > hg > xemacs-beta
comparison tests/automated/lisp-tests.el @ 5300:9f738305f80f
Accept sequences generally, not just lists, #'reverse, #'nreverse.
src/ChangeLog addition:
2010-11-06 Aidan Kehoe <kehoea@parhasard.net>
* bytecode.c (bytecode_nreverse): Call Fnreverse() if SEQUENCE is
not a cons in this function.
(Fnreverse, Freverse):
Accept sequences, not just lists, in these functions.
man/ChangeLog addition:
2010-11-06 Aidan Kehoe <kehoea@parhasard.net>
* lispref/lists.texi (Rearrangement, Building Lists):
Document that #'nreverse and #'reverse now accept sequences, not
just lists, in this file.
tests/ChangeLog addition:
2010-11-06 Aidan Kehoe <kehoea@parhasard.net>
* automated/lisp-tests.el (list-nreverse):
Check that #'reverse and #'nreverse handle non-list sequences
properly.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sat, 06 Nov 2010 21:18:52 +0000 |
parents | 28651c24b3f8 |
children | c096d8051f89 46491edfd94a |
comparison
equal
deleted
inserted
replaced
5299:28651c24b3f8 | 5300:9f738305f80f |
---|---|
2482 (list (map-into (make-list 2048 nil) #'(lambda () (decf count)))) | 2482 (list (map-into (make-list 2048 nil) #'(lambda () (decf count)))) |
2483 (expected (append list '(1)))) | 2483 (expected (append list '(1)))) |
2484 (Assert (equal expected (merge 'list list '(1) #'<)) | 2484 (Assert (equal expected (merge 'list list '(1) #'<)) |
2485 "checking merge's circularity checks are sane")) | 2485 "checking merge's circularity checks are sane")) |
2486 | 2486 |
2487 (flet ((list-nreverse (list) | |
2488 (do ((list1 list (cdr list1)) | |
2489 (list2 nil (prog1 list1 (setcdr list1 list2)))) | |
2490 ((atom list1) list2)))) | |
2491 (let* ((integers (loop for i from 0 to 6000 collect i)) | |
2492 (characters (mapcan #'(lambda (integer) | |
2493 (if (char-int-p integer) | |
2494 (list (int-char integer)))) integers)) | |
2495 (fourth-bit #'(lambda (integer) (ash (logand #x10 integer) -4))) | |
2496 (bits (mapcar fourth-bit integers)) | |
2497 (vector (vconcat integers)) | |
2498 (string (concat characters)) | |
2499 (bit-vector (bvconcat bits))) | |
2500 (Assert (equal (reverse vector) | |
2501 (vconcat (list-nreverse (copy-list integers))))) | |
2502 (Assert (eq vector (nreverse vector))) | |
2503 (Assert (equal vector (vconcat (list-nreverse (copy-list integers))))) | |
2504 (Assert (equal (reverse string) | |
2505 (concat (list-nreverse (copy-list characters))))) | |
2506 (Assert (eq string (nreverse string))) | |
2507 (Assert (equal string (concat (list-nreverse (copy-list characters))))) | |
2508 (Assert (eq bit-vector (nreverse bit-vector))) | |
2509 (Assert (equal (bvconcat (list-nreverse (copy-list bits))) bit-vector)) | |
2510 (Assert (not (equal bit-vector | |
2511 (mapcar fourth-bit | |
2512 (loop for i from 0 to 6000 collect i))))))) | |
2513 | |
2487 ;;; end of lisp-tests.el | 2514 ;;; end of lisp-tests.el |