Run Code
|
API
|
Code Wall
|
Users
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
2rec
;gnu clisp 2.49.60 #|2. Написать функцию, которая по списку вида: - фамилия - улица - номер дома Сформирует список однофамильцев, проживающих на заданной улице. |# (defun extract-street (data street) (cond ((null data) nil) ((string= (second (first data)) street) (cons (first data) (extract-street (rest data) street))) (t (extract-street (rest data) street)) ) ) (defun namesakes (data street) (let (extracted)) (setf extracted (extract-street data street)) (cond ) ) (defun find-namesakes (data) (cond ((null data) nil) (t (cons (find-by-name data (first(first data))) (find-namesakes (remove-by-name data (first(first data)))))) ) ) (defun find-by-name (data name) (cond ((null data) nil) ((string= (first (first data)) name) (cons (first data) (find-by-name (rest data) name))) (t (find-by-name (rest data) name)) ) ) (defun remove-by-name (data name) (cond ((null data) nil) ((string= name (first(first data))) (remove-by-name (rest data) name)) (t (cons (first data) (remove-by-name (rest data) name))) ) ) (let (data)) (setf data '(("Holmes" "Baker" 221) ("Holmes" "Baker" 222) ("Adler" "Hewston" 22) ("Watson" "Baker" 221) ("Watson" "Baker" 222) ("Holmes" "Hewston" 23) ("Adler" "Hewston" 23) ("Holmes" "Baker" 223) ("Adler" "Baker" 222))) (let (street)) (setf street "Baker") (print "Список людей: ") (print data) (print "_______________________________________________________________") (print "Улица: ") (print street) (print "_______________________________________________________________") (print (find-namesakes (extract-street data street)))
run
|
edit
|
history
|
help
0
Please
log in
to post a comment.
Q7-A
L1.8c (almost)
HW
Cabbages
1lab_lisp
Project Euler Problem 491
L3.4
Вычисление гипотенузы... на лиспе.
Sp
Q1WorkInProgress
Please log in to post a comment.