Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 16.11.2018
Сообщений: 1

Определите функцию (f s), которая из списка чисел s создает новый список

04.05.2022, 12:19. Показов 909. Ответов 2
Метки lisp (Все метки)

Студворк — интернет-сервис помощи студентам
Определите функцию (f s), которая из списка чисел s создает новый
список, меняя знак у каждого атома. Исходный список не предполагается
одноуровневым. Требуется использовать функционалы.

С уважением, Евгений
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.05.2022, 12:19
Ответы с готовыми решениями:

Определите функцию (f s), которая из списка чисел s создает новый список, меняя знак у каждого атома. Исходный список не предполагается одноуровневым
Определите функцию (f s), которая из списка чисел s создает новый список, меняя знак у каждого атома. Исходный список не предполагается...

Определите функцию inleft построения списка целых чисел, которая добавляет новый элемент
Определите функцию inleft построения списка целых чисел, которая добавляет новый элемент (первый аргумент функции) в начало списка (второй...

Clojure Определите функцию (f s n), которая из списка чисел s создает новый список, прибавляя к каждому атому число n
Определите функцию (f s n), которая из списка чисел s создает новый список, прибавляя к каждому атому число n. Исходный список не...

2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38190 / 21125 / 4307
Регистрация: 12.02.2012
Сообщений: 34,731
Записей в блоге: 14
04.05.2022, 14:57
Лучший ответ Сообщение было отмечено Slave20 как решение

Решение

Lisp
1
2
3
4
5
6
(defun foo (list)
   (mapcar (lambda (x) (if (listp x) (foo x) (if (numberp x) (- x) x))) list))
 
(foo '(1 2 3 (((9 8 a 6)) 8 3)))
 
==> (-1 -2 -3 (((-9 -8 A -6)) -8 -3))
2
 Аватар для _sg
4710 / 4405 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
04.05.2022, 21:14
Варианты:
Lisp
1
2
3
4
5
6
7
8
(defun antimatter (w &aux (a (car w)) (d (cdr w)))
  (cond ((null w) nil)
        ((listp a) (cons (antimatter a) (antimatter d)))
        ((numberp a) (cons (- a) (antimatter d)))
        (t (cons a (antimatter d)))))
 
> (antimatter '(1 2 3 nil (((9 8 a 6)) 8 3)))
(-1 -2 -3 NIL (((-9 -8 A -6)) -8 -3))
Добавлено через 2 минуты
Lisp
1
2
3
4
5
6
7
8
(defun antimatter (w &aux (a (car w)) (d (cdr w)))
  (when w (cons (cond ((listp a) (antimatter a))
                      ((numberp a) (- a))
                      (t a))
                (antimatter d))))
 
> (antimatter '(1 2 3 nil (((9 8 a 6)) 8 3)))
(-1 -2 -3 NIL (((-9 -8 A -6)) -8 -3))
Добавлено через 37 секунд
Lisp
1
2
3
4
5
6
7
8
(defun antimatter (w &aux (a (car w)))
  (when w (cons (cond ((listp a) (antimatter a))
                      ((numberp a) (- a))
                      (t a))
                (antimatter (cdr w)))))
 
> (antimatter '(1 2 3 nil (((9 8 a 6)) 8 3)))
(-1 -2 -3 NIL (((-9 -8 A -6)) -8 -3))
Добавлено через 2 минуты
Lisp
1
2
3
4
5
6
7
8
9
(defun antimatter (w)
  (mapcar #'(lambda (a)
              (cond ((listp a) (antimatter a))
                    ((numberp a) (- a))
                    (t a)))
          w))
 
> (antimatter '(1 2 3 nil (((9 8 a 6)) 8 3)))
(-1 -2 -3 NIL (((-9 -8 A -6)) -8 -3))
Добавлено через 1 минуту
Lisp
1
2
3
4
5
6
7
8
(defun antimatter (w)
  (loop for a in w collect
        (cond ((listp a) (antimatter a))
              ((numberp a) (- a))
              (t a))))
 
> (antimatter '(1 2 3 nil (((9 8 a 6)) 8 3)))
(-1 -2 -3 NIL (((-9 -8 A -6)) -8 -3))
Добавлено через 1 минуту
Lisp
1
2
3
4
5
6
7
8
(defun antimatter (w)
  (loop for a in w
        if (listp a) collect (antimatter a)
        else if (numberp a) collect (- a)
        else collect a))
 
> (antimatter '(1 2 3 nil (((9 8 a 6)) 8 3)))
(-1 -2 -3 NIL (((-9 -8 A -6)) -8 -3))
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.05.2022, 21:14
Помогаю со студенческими работами здесь

Описать функцию, которая создаёт новый список из каждого второго элемента исходного списка
Описать функцию, которая создаёт новый список из каждого второго элемента исходного списка

Создать функцию, которая из списка атомов создает список с уникальными атомами
помогите с задачей на лиспе: Надо создать функцию ATOMI-UNICAT который из списка атомов будит создать новый список из атомов которые...

Определить функцию MERGE которая создает из двух списков цифровых атомов новый отсортированный список
Определить функцию MERGE которая создает из двух списков цифровых атомов новый отсортированный список. Повторения пропускаются (MERGE ’(3...

Написать функцию, которая создает список L2, являющийся копией списка L1, начинающегося с данного узла
Доброго времени! Всех с праздниками! Есть лабораторная работа http://valera.asf.ru/delphi/lab/lab6.html , по этой работе надо сделать 5...

Написать функцию, которая создает список L2, являющийся копией списка L1, начинающегося с данного узла
Написать функцию, которая создает список L2, являющийся копией списка L1, начинающегося с данного узла ввод с клавиатуры,без рандома


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru