;;add all items in list (defun sumlist (l) ( cond ( (null l) 0) ( t (+ (car l) (sumlist (cdr l)))) ) ) ;;demo sumlist (sumlist '(2 4 6)) ;12 (sumlist '(2 4 6 10 12 14 16)) ;64 ;;multiply all items in list (defun multlist (l) ( cond ( (null l) 1) ( t (* (car l) (multlist (cdr l)))) ) ) ;;demo multlist (multlist '(2 4 6)) ;48 (multlist '(2 4 6 10 12 14 16)) ;1290240 ;;filer argument and stop after first argument and return the tail (defun rember (x l) ( cond ( (null l) l) ( (eq x (car l))(cdr l)) ( t ( cons (car l) (rember x (cdr l)))) ) ) ;;demo rember 1 (rember 2 '(2 3 4)) ;(3 4) (rember 2 '(3 2 4 5)) ;(3 4 5) (rember 2 '(3 2 4 2 5)) ;(3 4 2 5) ;;recursively filter arguement out of all input (defun rember (x l) ( cond ( (null l) l) ( (eq x (car l))(rember x (cdr l))) ( t ( cons (car l) (rember x (cdr l)))) ) ) ;;demo rember 2 (rember 2 '(2 3 4)) ;(3 4) (rember 2 '(3 2 4 5)) ;(3 4 5) (rember 2 '(3 2 4 2 5)) ;(3 4 5) ;;recursively take head of inner lists (defun firsts (l) (cond ( (null l)()) ( t (cons (car (car l))(firsts (cdr l)))) ) ) ;;demo firsts (firsts '( (4 5) (6 3)(8 3 1))) ;(4 6 8) ;;replace second param with first param (defun replace (new old l) (cond ( (null l) l) ( (eq old (car l)) (cons new( cdr l))) ( t ( (cons (car l) ( replace new old (cdr l))))) ) ) ;;demo replace (replace 3 6 '(6 5 7)) ;(3 5 7) ;;recursion replace all second param with first param (defun replaceall (new old l) (cond ( (null l) l) ( (eq old (car l)) (cons new (replaceall new old (cdr l)))) ( t (cons (car l) (replaceall new old (cdr l)))) ) ) ;;demo replaceall (replaceall 3 6 '(6 5 7 6)) ;(3 5 7 3) ;; insert new old etc (defun insertR (new old l) (cond ( (null l) l) ( (eq old (car l)) (cons (car l) (cons new (cdr l)))) ( t (cons (car l) (insertR new old (cdr l)))) ) ) ;;demo insertR (insertR 3 6 '(6 7 8)) ;(6 3 7 8) (insertR 3 6 '(1 4 6 7 6)) ;(1 4 6 3 7 6) ;;insert all occurences ;; insert new old etc (defun insertallR (new old l) (cond ( (null l) l) ( (eq old (car l)) (cons (car l) (cons new (insertallR new old (cdr l))))) ( t (cons (car l) (insertallR new old (cdr l)))) ) ) ;;demo insertallR (insertallR 3 6 '(6 7 8)) ;(6 3 7 8) (insertallR 3 6 '(1 4 6 7 6)) ;(1 4 6 3 7 6 3)