Работа с массивами - Lisp

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

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

Здравствуйте) прошу помощи с заданием)

Задание:

Составить программу, переносящую все элементы одномерного числового массива, меньше n в новый массив, число n вводится с клавиатуры.

Решение задачи: «Работа с массивами»

textual
Листинг программы
(defun task (arr n)
  (remove-if #'(lambda (x) (>= x n)) arr)) 
 
==> task
 
(task '(1 2 3 1 2 3 1 2 3) 2)
 
==> (1 1 1)

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

В данном коде определен функционал для работы с массивами. Функция с именем task принимает два аргумента типа arr и n. Первый аргумент arr — это массив, с которым в дальнейшем будет производиться ряд операций. Второй аргумент n — это число, которое определяет максимальный размер первого элемента массива, который будет передан в функцию remove-if. Затем происходит вызов функции remove-if с определенным замыканием в качестве аргумента. В данном случае используется анонимная функция (lambda), которая принимает один аргумент типа x и возвращает результат сравнения x и n. Если результат сравнения больше или равен n, то элемент массива удаляется. В итоге функция task возвращает новый массив, который содержит только те элементы исходного массива, размер которых меньше указанного числа n. Пример использования функции task: (task '(1 2 3 1 2 3 1 2 3) 2) В данном случае, результатом выполнения кода будет массив (1 1 1), так как все элементы исходного массива, размер которых больше 2, были удалены.

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


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

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

10   голосов , оценка 4.2 из 5