Замена элементов после сортировки списка - Lisp

Узнай цену своей работы

Формулировка задачи:

Привет всем, Есть неупорядоченный список чисел, нужно его упорядочить и каждую 2 заменить на 5

Решение задачи: «Замена элементов после сортировки списка»

textual
Листинг программы
  1. (defun task (lst)
  2.  (subst 5 2 (qsort lst)))
  3.  
  4. ==> task
  5.  
  6. (task '(1 2 3 1 2 3 1 2 3))
  7.  
  8. ==> (1 1 1 5 5 5 3 3 3)
  9.  
  10. (defun task (lst)
  11.  (mapcar #'(lambda (x) (if (= x 2) 5 x)) (qsort lst)))
  12.  
  13. ==> task
  14.  
  15. (task '(1 2 3 1 2 3 1 2 3))
  16.  
  17. ==> (1 1 1 5 5 5 3 3 3)

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

В первом куске кода функция task принимает в качестве аргумента список lst. Внутри функции происходит сортировка списка lst с помощью функции qsort и замена второго вхождения числа 2 на число 5 с помощью функции subst. Возвращаемое значение функции task — отсортированный и измененный список. Во втором куске кода функция task также принимает в качестве аргумента список lst. Внутри функции сначала происходит сортировка списка lst с помощью функции qsort, а затем с помощью функции mapcar и лямбда-функции происходит замена каждого вхождения числа 2 на число 5. Возвращаемое значение функции task — измененный список. Оба куска кода выполняют одну и ту же задачу — сортировку списка и замену второго вхождения числа 2 на число 5.

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


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

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

12   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы