Ассоциативные списки и списки свойств - Lisp (229472)
Формулировка задачи:
Не могу разобраться в теме "Ассоциативные списки и списки свойств",а именно как работать с ключами)если кому не сложно,объясните наглядно)
Решение задачи: «Ассоциативные списки и списки свойств»
textual
Листинг программы
- (spropl 'a '((x . 1) (y . 2) (z . 3))) ;; Список свойств a содержит три пары
- ==> ((x . 1) (y . 2) (z . 3))
- (spropl 'b '((xx . 11) (yy . 22) (zz . 33))) ;; Список свойств b содержит три пары
- ==> ((xx . 11) (yy . 22) (zz . 33))
- (spropl 'c '((q . 1) (w . 2))) ;; Список свойств a содержит две пары
- ==> ((q . 1) (w . 2))
- (defun task (lst)
- (mapcar (lambda (x) (length (proplist x))) lst))
- ==> task
- (task '(a b c))
- ==> (3 3 2)
Объяснение кода листинга программы
- Первый элемент списка - функция
spropl
, которая принимает два аргумента: имя свойства и список пар свойств. - Функция
spropl
возвращает список пар свойств. - Второй элемент списка - функция
task
, которая принимает один аргумент - список свойств. - Функция
task
применяет к каждому элементу списка функциюlength
и возвращает список результатов. - Третий элемент списка - вызов функции
task
с аргументом(a b c)
, гдеa
,b
иc
- это списки свойств. - Результат вызова функции
task
-(3 3 2)
, где первое число - длина списка свойств дляa
, второе число - длина списка свойств дляb
, третье число - длина списка свойств дляc
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д