Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Common Lisp - simple function examples
(defun our-last (list) (cond ((null (cdr list)) (car list)) (T (our-last (cdr list))) ) ) (defun count-x-in-y (x y) (cond ((null (cdr y)) (cond ((equalp (car y) x) 1) (T 0) ) ) (T (cond ((equalp (car y) x) (+ 1 (count-x-in-y x (cdr y)))) (T (count-x-in-y x (cdr y))) ) ) ) ) (defun sum (list) (cond ((null (car list)) 0) ((numberp (car list)) (+ (car list) (sum (cdr list)))) (T (sum (cdr list))) ) ) (defun count-numbers-in-list (list) (cond ((null (car list)) 0) ((numberp (car list)) (+ 1 (count-numbers-in-list (cdr list)))) (T (count-numbers-in-list (cdr list))) ) ) (defun average-r (list) (/ (sum list) (count-numbers-in-list list)) ) (defun squash-list (list) (cond ((null (car list)) NIL) ((listp (car list)) (append (squash-list (car list)) (squash-list (cdr list)))) (T (append (list (car list)) (squash-list (cdr list)))) ) ) (defun our-member-p (x y) (cond ((null (car y)) NIL) ((equalp (car y) x) x) (T (our-member-p x (cdr y))) ) ) ; Test lists (setf a (list 2 3 'b 3 5 5 5)) (setf c '((x y) x ((((y z)))))) ; Test cases (print (our-last a)) (print (count-x-in-y 5 a)) ; Helper functions for average-r (print (sum a)) (print (count-numbers-in-list a)) (print (average-r a)) (print (our-member-p 'b a)) (print (squash-list c))
run
|
edit
|
history
|
help
0
Veronica
Sp
liste-recursiv
14
Homework.lisp
summ list
ввод
S17016281_ACTIVIDAD_24
02_Firman_01.lisp
Q7-A