1;; -*- Lisp -*- vim:filetype=lisp
2
3(ENDP 'NIL)
4T
5
6(ENDP '(A . B))
7NIL
8
9(ENDP '(A B . C))
10NIL
11
12(ENDP '(A B C))
13NIL
14
15(ENDP '(A B C D))
16NIL
17
18(ENDP '(A B C . D))
19NIL
20
21(ENDP '('NIL 'NIL))
22NIL
23
24(LIST-LENGTH 'NIL)
250
26
27(LIST-LENGTH '(A . B))
28#+XCL 1 #+(or CLISP AKCL ECL ALLEGRO CMU SBCL OpenMCL LISPWORKS) ERROR
29#-(or XCL CLISP AKCL ECL ALLEGRO CMU SBCL OpenMCL LISPWORKS) UNKNOWN
30
31(LIST-LENGTH '(A B C D))
324
33
34(LIST-LENGTH '(A (B C) D))
353
36
37(LET ((X (LIST 'A 'B 'C)))
38  (RPLACD (LAST X) X)
39  (LIST-LENGTH X))
40NIL
41
42(NTH 0 '(A B C D))
43A
44
45(NTH 1 '(A B C D))
46B
47
48(NTH 3 '(A B C D))
49D
50
51(NTH 5 '(A B C D))
52NIL
53
54(NTH -2 '(A B C D))
55ERROR
56
57(NTH 0 'NIL)
58NIL
59
60(NTH 2 'NIL)
61NIL
62
63(FIRST '(1 2 3 4 5 6 7 8 9 10 11))
641
65
66(SECOND '(1 2 3 4 5 6 7 8 9 10 11))
672
68
69(THIRD '(1 2 3 4 5 6 7 8 9 10 11))
703
71
72(FOURTH '(1 2 3 4 5 6 7 8 9 10 11))
734
74
75(FIFTH '(1 2 3 4 5 6 7 8 9 10 11))
765
77
78(SIXTH '(1 2 3 4 5 6 7 8 9 10 11))
796
80
81(SEVENTH '(1 2 3 4 5 6 7 8 9 10 11))
827
83
84(EIGHTH '(1 2 3 4 5 6 7 8 9 10 11))
858
86
87(NINTH '(1 2 3 4 5 6 7 8 9 10 11))
889
89
90(TENTH '(1 2 3 4 5 6 7 8 9 10 11))
9110
92
93(FIRST '(1 2 3))
941
95
96(SECOND '(1 2 3))
972
98
99(THIRD '(1 2 3))
1003
101
102(FOURTH '(1 2 3))
103NIL
104
105(FIFTH '(1 2 3))
106NIL
107
108(SIXTH '(1 2 3))
109NIL
110
111(SEVENTH '(1 2 3))
112NIL
113
114(EIGHTH '(1 2 3))
115NIL
116
117(NINTH '(1 2 3))
118NIL
119
120(TENTH '(1 2 3))
121NIL
122
123(FIRST 'NIL)
124NIL
125
126(SECOND 'NIL)
127NIL
128
129(THIRD 'NIL)
130NIL
131
132(FOURTH 'NIL)
133NIL
134
135(FIFTH 'NIL)
136NIL
137
138(SIXTH 'NIL)
139NIL
140
141(SEVENTH 'NIL)
142NIL
143
144(EIGHTH 'NIL)
145NIL
146
147(NINTH 'NIL)
148NIL
149
150(TENTH 'NIL)
151NIL
152
153(REST '(1 2 3 4 5))
154(2 3 4 5)
155
156(REST 'NIL)
157NIL
158
159(REST '(A . B))
160B
161
162(REST '(1 2 3 . 4))
163(2 3 . 4)
164
165(NTHCDR 0 '(A B C D))
166(A B C D)
167
168(NTHCDR 1 '(A B C D))
169(B C D)
170
171(NTHCDR 3 '(A B C D))
172(D)
173
174(NTHCDR 5 '(A B C D))
175NIL
176
177(NTHCDR -2 '(A B C D))
178ERROR
179
180(NTHCDR 0 'NIL)
181NIL
182
183(NTHCDR 2 'NIL)
184NIL
185
186(LAST '(1 2 3 4 5))
187(5)
188
189(LAST 'NIL)
190NIL
191
192(LAST '(A . B))
193(A . B)
194
195(LAST '(1 2 3 . 4))
196(3 . 4)
197
198(LIST 'A 'B 'C 'D)
199(A B C D)
200
201(LIST 'A)
202(A)
203
204(LIST '(A B) '(C D))
205((A B) (C D))
206
207(LIST 'A 'NIL)
208(A NIL)
209
210(LIST 'NIL 'A)
211(NIL A)
212
213(LIST 'NIL 'NIL)
214(NIL NIL)
215
216(LIST)
217NIL
218
219(LIST 3 4 'A
220      (CAR '(B . C))
221      (+ 6 -2))
222(3 4 A B 4)
223
224(LIST* 'A 'B 'C 'D)
225(A B C . D)
226
227(LIST* 'A)
228A
229
230(LIST* '(A B)
231       '(C D))
232((A B)
233 C D)
234
235(LIST* 'A 'NIL)
236(A)
237
238(LIST* 'NIL 'A)
239(NIL . A)
240
241(LIST* 'NIL 'NIL)
242(NIL)
243
244(LIST*)
245ERROR
246
247(LIST* 3 4 'A
248       (CAR '(B . C))
249       (+ 6 -2))
250(3 4 A B . 4)
251
252(LIST* 'A 'B 'C
253       '(D E F))
254(A B C D E F)
255
256(LIST* X)
257ERROR
258
259(LIST* 'NIL)
260NIL
261
262(MAKE-LIST 5)
263(NIL NIL NIL NIL NIL)
264
265(MAKE-LIST 5 :INITIAL-ELEMENT)
266ERROR
267
268(MAKE-LIST 3 :INITIAL-ELEMENT 'RAH)
269(RAH RAH RAH)
270
271(MAKE-LIST 0)
272NIL
273
274(MAKE-LIST 0 :INITIAL-ELEMENT 'AAA)
275NIL
276
277(MAKE-LIST 5 :INITIAL-ELEMENT 'NIL)
278(NIL NIL NIL NIL NIL)
279
280(MAKE-LIST)
281ERROR
282
283(APPEND '(A B C)
284        '(D E F)
285        'NIL
286        '(G))
287(A B C D E F G)
288
289(APPEND '(A B C)
290       'D)
291(A B C . D)
292
293(APPEND 'A 'B)
294ERROR
295
296(APPEND 'A 'NIL)
297ERROR
298
299(APPEND 'NIL 'NIL)
300NIL
301
302(APPEND 'NIL 'A)
303#+XCL ERROR
304#-XCL A
305
306(APPEND 'NIL
307       '(A B C))
308(A B C)
309
310(SETQ X '(A B C))
311(A B C)
312
313(SETQ Y '(D E F))
314(D E F)
315
316(SETQ R (APPEND X Y))
317(A B C D E F)
318
319X
320(A B C)
321
322Y
323(D E F)
324
325(EQ (CDDDR R) Y)
326T
327
328(COPY-LIST '(1 2 3 4 5))
329(1 2 3 4 5)
330
331(COPY-LIST 'NIL)
332NIL
333
334(COPY-LIST '(A . B))
335(A . B)
336
337(COPY-LIST '(1 2 3 . 4))
338(1 2 3 . 4)
339
340(SETQ L '(1 2 3 4 5))
341(1 2 3 4 5)
342
343(EQ L (COPY-LIST L))
344NIL
345
346(EQL L (COPY-LIST L))
347NIL
348
349(EQUAL L (COPY-LIST L))
350T
351
352(EQUALP L (COPY-LIST L))
353T
354
355(COPY-ALIST 'A)
356ERROR
357
358(COPY-ALIST 'NIL)
359NIL
360
361(COPY-ALIST 5)
362ERROR
363
364(COPY-ALIST '(A B))
365#+(or XCL CLISP ECL ALLEGRO CMU SBCL LISPWORKS) (A B) #+(or GCL OpenMCL) ERROR
366#-(or XCL CLISP ECL GCL ALLEGRO CMU SBCL OpenMCL LISPWORKS) UNKNOWN
367
368(COPY-ALIST '((1 . A)
369              (2 . B)
370              (3 . C)))
371((1 . A)
372 (2 . B)
373 (3 . C))
374
375(SETQ X '((1 . A)
376          (2 . B)
377          (3 . C)))
378((1 . A)
379 (2 . B)
380 (3 . C))
381
382(EQ X (COPY-ALIST X))
383NIL
384
385(EQL X (COPY-ALIST X))
386NIL
387
388(EQUAL X (COPY-ALIST X))
389T
390
391(EQ (CADR X)
392    (CADR (COPY-ALIST X)))
393NIL
394
395(EQL (CADR X)
396     (CADR (COPY-ALIST X)))
397NIL
398
399(EQUAL (CADR X)
400       (CADR (COPY-ALIST X)))
401T
402
403(COPY-ALIST '((1 . 2))
404            '((A . B)))
405ERROR
406
407(COPY-ALIST '((A B)
408              C
409              (D E)))
410#+(or XCL CLISP ECL ALLEGRO CMU SBCL LISPWORKS) ((A B) C (D E)) #+(or GCL OpenMCL) ERROR
411#-(or XCL CLISP ECL GCL ALLEGRO CMU SBCL OpenMCL LISPWORKS) UNKNOWN
412
413(COPY-TREE 'X)
414X
415
416(COPY-TREE 5)
4175
418
419(COPY-TREE '(A B))
420(A B)
421
422(COPY-TREE '(A B
423               (C (D)
424                  (E F))
425               G))
426(A B
427   (C (D)
428      (E F))
429   G)
430
431(COPY-TREE '((1 . E)
432             (2 . F)))
433((1 . E)
434 (2 . F))
435
436(COPY-TREE #*001)
437#*001
438
439(SETQ X
440      '(A B
441          (C D)
442          E))
443(A B
444   (C D)
445   E)
446
447(EQ X
448    (COPY-TREE X))
449NIL
450
451(EQL X
452     (COPY-TREE X))
453NIL
454
455(EQUAL X
456       (COPY-TREE X))
457T
458
459(EQ (CDADDR X)
460    (CDADDR (COPY-TREE X)))
461NIL
462
463(EQL (CDADDR X)
464     (CDADDR (COPY-TREE X)))
465NIL
466
467(EQUAL (CDADDR X)
468       (CDADDR (COPY-TREE X)))
469T
470
471(REVAPPEND '(A B C)
472       '(D E F)
473       'NIL
474       '(G))
475ERROR
476
477(REVAPPEND '(A B C)
478       'D)
479(C B A . D)
480
481(REVAPPEND 'A 'B)
482ERROR
483
484(REVAPPEND 'A 'NIL)
485ERROR
486
487(REVAPPEND 'NIL 'NIL)
488NIL
489
490(REVAPPEND 'NIL 'A)
491A
492
493(REVAPPEND 'NIL
494           '(A B C))
495(A B C)
496
497(REVAPPEND '(A B C)
498           '(D E F))
499(C B A D E F)
500
501(REVAPPEND '(D E F)
502           '(A B C))
503(F E D A B C)
504
505(EQL (REVAPPEND '(A B C)
506            '(D E F))
507     (APPEND (REVERSE '(A B C))
508            '(D E F)))
509NIL
510
511(EQUAL (REVAPPEND '(A B C)
512                  '(D E F))
513       (APPEND (REVERSE '(A B C))
514               '(D E F)))
515T
516
517(SETQ X '(A B C))
518(A B C)
519
520(SETQ Y '(D E F))
521(D E F)
522
523(SETQ R (REVAPPEND X Y))
524(C B A D E F)
525
526X
527(A B C)
528
529Y
530(D E F)
531
532(EQ (CDDDR R)
533    Y)
534T
535
536(SETQ X
537      '(A B C)
538      Y
539      '(D E F))
540(D E F)
541
542(NCONC X Y)
543(A B C D E F)
544
545X
546(A B C D E F)
547
548(EQ (CDDDR X)
549    Y)
550T
551
552(SETQ X
553      '(A B C)
554      Y
555      '(D E F)
556      Z
557      '(G H I))
558(G H I)
559
560(NCONC)
561NIL
562
563(NCONC X)
564(A B C)
565
566(NCONC NIL)
567NIL
568
569(NCONC NIL NIL)
570NIL
571
572(NCONC X NIL)
573(A B C)
574
575(NCONC NIL NIL NIL NIL)
576NIL
577
578(NCONC NIL NIL X NIL)
579(A B C)
580
581(NCONC X NIL Y NIL Z NIL)
582(A B C D E F G H I)
583
584X
585(A B C D E F G H I)
586
587Y
588(D E F G H I)
589
590Z
591(G H I)
592
593(EQ (CDDDR X)
594    Y)
595T
596
597(EQ (CDDDR Y)
598    Z)
599T
600
601(NCONC '(1 2) 'A)
602#+XCL ERROR #+(or CLISP AKCL ECL ALLEGRO CMU SBCL OpenMCL LISPWORKS) (1 2 . A)
603#-(or XCL CLISP AKCL ECL ALLEGRO CMU SBCL OpenMCL LISPWORKS) UNKNOWN
604
605(NCONC 'A)
606#+XCL ERROR #+(or CLISP AKCL ECL ALLEGRO CMU SBCL OpenMCL LISPWORKS) A
607#-(or XCL CLISP AKCL ECL ALLEGRO CMU SBCL OpenMCL LISPWORKS) UNKNOWN
608
609(SETQ X
610      '(A B C)
611      Y
612      '(D E F))
613(D E F)
614
615(NRECONC X Y)
616(C B A D E F)
617
618X
619#+XCL WAS-DESTROYED ; wo kommt denn so was her?
620#+CLISP (C B A D E F)
621#+(or AKCL ECL ALLEGRO CMU SBCL OpenMCL LISPWORKS) (A D E F)
622#-(or XCL CLISP AKCL ECL ALLEGRO CMU SBCL OpenMCL LISPWORKS) UNKNOWN
623
624(TAILP Y X)
625T
626
627(SETQ X
628      '(A B C)
629      Y
630      '(D E F)
631      Z
632      '(G H I))
633(G H I)
634
635(NRECONC)
636ERROR
637
638(NRECONC X)
639ERROR
640
641(NRECONC NIL)
642ERROR
643
644(NRECONC NIL NIL)
645NIL
646
647(NRECONC X NIL)
648(C B A)
649
650X
651#+XCL WAS-DESTROYED
652#+CLISP (C B A)
653#+(or AKCL ECL ALLEGRO CMU SBCL OpenMCL LISPWORKS) (A)
654#-(or XCL CLISP AKCL ALLEGRO CMU SBCL OpenMCL LISPWORKS) UNKNOWN
655
656(NRECONC NIL NIL NIL NIL)
657ERROR
658
659(NCONC NIL 'X)
660#+XCL ERROR
661#+(or CLISP AKCL ECL ALLEGRO CMU SBCL OpenMCL LISPWORKS) X
662#-(or XCL CLISP AKCL ALLEGRO CMU SBCL OpenMCL LISPWORKS) UNKNOWN
663
664(SETQ AA NIL)
665NIL
666
667(PUSH '1 AA)
668(1)
669
670(PUSH '2 AA)
671(2 1)
672
673(PUSH '2 AA)
674(2 2 1)
675
676(SETQ AA
677      '(B A))
678(B A)
679
680(PUSHNEW 'A AA)
681(B A)
682
683(PUSHNEW 'C AA)
684(C B A)
685
686(SETQ XXX NIL)
687NIL
688
689(PUSHNEW 'C XXX :TEST 'EQUAL)
690(C)
691
692(PUSHNEW 'C XXX :TEST 'EQUAL)
693(C)
694
695(PUSHNEW '(C) XXX :TEST 'EQUAL)
696((C) C)
697
698XXX
699((C) C)
700
701(SETQ XX '(NIL KKK))
702(NIL KKK)
703
704(PUSHNEW 'U (CAR XX))
705(U)
706
707(PUSHNEW 'U (CAR XX))
708(U)
709
710(PUSHNEW 'V (CAR XX))
711(V U)
712
713XX
714((V U) KKK)
715
716(PUSHNEW '(W) (CAR XX))
717((W)
718 V U)
719
720(PUSHNEW '(W) (CAR XX))
721((W)
722 (W)
723 V U)
724
725(PUSHNEW '(W) (CAR XX)
726         :TEST 'EQUAL)
727((W)
728 (W)
729 V U)
730
731(PUSHNEW '(W) (CAR XX)
732         :TEST-NOT 'EQUAL)
733((W)
734 (W)
735 V U)
736
737(SETQ AA '(1 2 3))
738(1 2 3)
739
740(POP AA)
7411
742
743AA
744(2 3)
745
746(POP AA)
7472
748
749(POP AA)
7503
751
752(POP AA)
753NIL
754
755(POP AA)
756NIL
757
758(BUTLAST '(A B C))
759(A B)
760
761(BUTLAST '(A B C)
762       2)
763(A)
764
765(NBUTLAST '(A B C D)
766       3)
767(A)
768
769(NBUTLAST '(A B C D)
770       1)
771(A B C)
772
773(NBUTLAST '(A B C D)
774       0)
775(A B C D)
776
777(NBUTLAST '(A B C D)
778       4)
779NIL
780
781(NBUTLAST '(A B C D)
782       6)
783NIL
784
785(butlast '#1=(1 2 3 . #1#) 3)
786ERROR
787
788;; <http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_revappendcm_nreconc.html>
789(let ((list-1 (list 1 2 3))
790      (list-2 (list 'a 'b 'c)))
791  (list (revappend list-1 list-2)
792        (equal list-1 '(1 2 3))
793        (equal list-2 '(a b c))))
794((3 2 1 A B C) T T)
795
796(revappend '(1 2 3) '())
797(3 2 1)
798
799(revappend '(1 2 3) '(a . b))
800(3 2 1 A . B)
801
802(revappend '() '(a b c))
803(A B C)
804
805(revappend '(1 2 3) 'a)
806(3 2 1 . A)
807
808(revappend '() 'a)
809A   ;degenerate case
810
811(let ((list-1 (list '1 '2 '3))
812      (list-2 (list 'a 'b 'c)))
813  (list (nreconc list-1 list-2)
814        (equal list-1 '(1 2 3))
815        (equal list-2 '(a b c))))
816((3 2 1 A B C) NIL T)
817
818;; <http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_nconc.html>
819(nconc)
820NIL
821
822(setq x '(a b c))
823(A B C)
824
825(setq y '(d e f))
826(D E F)
827
828(nconc x y)
829(A B C D E F)
830
831x
832(A B C D E F)
833
834(setq foo (list 'a 'b 'c 'd 'e)
835      bar (list 'f 'g 'h 'i 'j)
836      baz (list 'k 'l 'm))
837(K L M)
838
839(setq foo (nconc foo bar baz))
840(A B C D E F G H I J K L M)
841
842foo     (A B C D E F G H I J K L M)
843bar     (F G H I J K L M)
844baz     (K L M)
845
846(setq foo (list 'a 'b 'c 'd 'e)
847      bar (list 'f 'g 'h 'i 'j)
848      baz (list 'k 'l 'm))
849(K L M)
850
851(setq foo (nconc nil foo bar nil baz))
852(A B C D E F G H I J K L M)
853
854foo     (A B C D E F G H I J K L M)
855bar     (F G H I J K L M)
856baz     (K L M)
857
858;; <http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_append.html>
859(append '(a b c) '(d e f) '() '(g))
860(A B C D E F G)
861
862(append '(a b c) 'd)
863(A B C . D)
864
865(setq lst '(a b c))
866(A B C)
867
868(append lst '(d))
869(A B C D)
870
871lst
872(A B C)
873
874(append)
875NIL
876
877(append 'a)
878A
879
880
881; Clean up.
882(unintern 'x)
883T
884