Ассоциативные списки и списки свойств - 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)

Объяснение кода листинга программы

  1. Первый элемент списка - функция spropl, которая принимает два аргумента: имя свойства и список пар свойств.
  2. Функция spropl возвращает список пар свойств.
  3. Второй элемент списка - функция task, которая принимает один аргумент - список свойств.
  4. Функция task применяет к каждому элементу списка функцию length и возвращает список результатов.
  5. Третий элемент списка - вызов функции task с аргументом (a b c), где a, b и c - это списки свойств.
  6. Результат вызова функции task - (3 3 2), где первое число - длина списка свойств для a, второе число - длина списка свойств для b, третье число - длина списка свойств для c.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы