Сформировать список из списка - Lisp

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

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

Из списка целых чисел сформировать список чисел, которые меньше заданного

Решение задачи: «Сформировать список из списка»

textual
Листинг программы
(defun under (w n)
  (remove-if-not #'(lambda (a) (< a n)) w))
 
> (under '(10 2 30 4 50 6 70) 7)
(2 4 6)

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

В данном коде определён функционал под названием under, который принимает два аргумента.

  1. Первый аргумент w — это список чисел, который мы хотим отфильтровать.
  2. Второй аргумент n — это число, которое мы используем как пограничное значение для фильтрации элементов списка w. Далее, внутри функции under используется функция remove-if-not, которая принимает два аргумента:
  3. Первый аргумент — это предикат, который должен возвращать истинное значение для элементов, которые мы хотим оставить в отфильтрованном списке.
  4. Второй аргумент — это список, который мы хотим отфильтровать. В данном случае, в качестве предиката используется анонимная функция (lambda), которая принимает один аргумент a и возвращает значение true, если a меньше или равно второму аргументу функции under (то есть n). Таким образом, функция under возвращает отфильтрованный список элементов из первого аргумента, которые меньше или равны второму аргументу. Например, если мы вызываем функцию under с аргументами '(10 2 30 4 50 6 70) и 7, то она вернёт отфильтрованный список (2 4 6), так как все остальные элементы списка больше 7.

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


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

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

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