From: Owen Rodley Date: Fri, 3 May 2013 22:56:59 +0000 (+1200) Subject: FIFTH to TENTH X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=7478a2dfeb75791695ea643ecaa56adba8d77139;p=jscl.git FIFTH to TENTH --- diff --git a/src/list.lisp b/src/list.lisp index fd9e0bd..bbb7557 100644 --- a/src/list.lisp +++ b/src/list.lisp @@ -37,11 +37,17 @@ (defun cdr (x) (cdr x)) -(defun first (x) (car x)) -(defun second (x) (cadr x)) -(defun third (x) (caddr x)) -(defun fourth (x) (cadddr x)) -(defun rest (x) (cdr x)) +(defun first (x) (car x)) +(defun second (x) (cadr x)) +(defun third (x) (caddr x)) +(defun fourth (x) (cadddr x)) +(defun fifth (x) (car (cddddr x))) +(defun sixth (x) (cadr (cddddr x))) +(defun seventh (x) (caddr (cddddr x))) +(defun eighth (x) (cadddr (cddddr x))) +(defun ninth (x) (car (cddddr (cddddr x)))) +(defun tenth (x) (cadr (cddddr (cddddr x)))) +(defun rest (x) (cdr x)) (defun list (&rest args) args) diff --git a/src/toplevel.lisp b/src/toplevel.lisp index bb91c9e..85d926f 100644 --- a/src/toplevel.lisp +++ b/src/toplevel.lisp @@ -58,24 +58,24 @@ copy-list copy-tree decf declaim declare defconstant define-setf-expander define-symbol-macro defmacro defparameter defun defvar digit-char digit-char-p disassemble do do* documentation - dolist dotimes ecase eq eql equal error eval every export expt - fdefinition find-package find-symbol first flet format fourth fset - funcall function functionp gensym get-internal-real-time + dolist dotimes ecase eighth eq eql equal error eval every export expt + fdefinition fifth find-package find-symbol first flet format fourth + fset funcall function functionp gensym get-internal-real-time get-setf-expansion get-universal-time go identity if in-package incf integerp intern keywordp labels lambda last length let let* list list* list-all-packages listp loop make-array make-package make-symbol mapcar member minusp mod multiple-value-bind multiple-value-call multiple-value-list multiple-value-prog1 - nconc nil not nreconc nth nthcdr null numberp or otherwise + nconc nil ninth not nreconc nth nthcdr null numberp or otherwise package-name package-use-list packagep parse-integer plusp pop prin1-to-string print proclaim prog1 prog2 progn psetq push quote read-from-string remove remove-if remove-if-not return - return-from revappend reverse rplaca rplacd second set setf - setq some string string-upcase string= stringp subseq subst + return-from revappend reverse rplaca rplacd second set setf seventh + setq sixth some string string-upcase string= stringp subseq subst symbol-function symbol-name symbol-package symbol-plist - symbol-value symbolp t tagbody third throw tree-equal truncate unless - unwind-protect values values-list variable warn when write-line - write-string zerop)) + symbol-value symbolp t tagbody tenth third throw tree-equal truncate + unless unwind-protect values values-list variable warn when + write-line write-string zerop)) (setq *package* *user-package*) diff --git a/tests/list.lisp b/tests/list.lisp index d422823..02fed92 100644 --- a/tests/list.lisp +++ b/tests/list.lisp @@ -18,6 +18,19 @@ (test (tree-equal (cons 1 2) (cons 2 3) :test (lambda (a b) (not (= a b))))) +; FIRST to TENTH +(let ((nums '(1 2 3 4 5 6 7 8 9 10))) + (test (= (first nums) 1)) + (test (= (second nums) 2)) + (test (= (third nums) 3)) + (test (= (fourth nums) 4)) + (test (= (fifth nums) 5)) + (test (= (sixth nums) 6)) + (test (= (seventh nums) 7)) + (test (= (eighth nums) 8)) + (test (= (ninth nums) 9)) + (test (= (tenth nums) 10))) + ; SUBST ; Can't really test this until EQUAL works properly on lists