Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 27.04.2011
Сообщений: 22

работа со списком

04.12.2011, 17:16. Показов 3464. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
дан список из 15 чисел.если максимальный элемент предшествует минимальному,то посчитать их сумму,если нет то просто вывести 0...
писать через рекурсию
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.12.2011, 17:16
Ответы с готовыми решениями:

Работа со списком
Нужно найденный товар пихнуть вверх двусвязного списка, а остальные элементы должны съехать вниз. Как это осуществить? Не понимаю как...

Работа со списком
Здравствуйте! Задачка такая. Имеется примерно такой список: Максим Информация1 Информация2 Информация3 Информация4 ...

Работа со списком
1. Создай список слов, заполни его самостоятельно. 2. Метод fix должен: 2.1. удалять из списка строк все слова, содержащие букву «р» ...

33
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
28.03.2013, 13:12
Студворк — интернет-сервис помощи студентам
Жалко, нет кнопки "Большое спасибо". А он как, достаточно мейнстримный?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38228 / 21160 / 4314
Регистрация: 12.02.2012
Сообщений: 34,773
Записей в блоге: 14
28.03.2013, 14:25
Цитата Сообщение от helter Посмотреть сообщение
А он как, достаточно мейнстримный?
- мне трудно судить из моей провинции... Познакомился c iter благодаря cyberforum-у. Скачал. В LispWorks установился. Вот достаточно полное описание (там и статья "Итерируй, а не цикли!"
Вложения
Тип файла: zip iterate-manual.zip (223.5 Кб, 8 просмотров)
2
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 17
28.03.2013, 18:01
(defun zeros (list)
(cond ((null list) nil)
((< (car list) 0) (cons 0 (zeros (cdr list))))
((cons (car list) (zeros (cdr list))))))
(zeros '(5 9 3 -4 5 0 -9))

Объясните пожалуйста зачем нужна эта строчка:
(cond ((null list) nil)
0
15 / 15 / 0
Регистрация: 14.03.2013
Сообщений: 77
28.03.2013, 18:02
если список пуст он вернет nil
0
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 17
28.03.2013, 18:12
так в данному случае нам дан список и он не может быть пустым

Добавлено через 1 минуту
зачем нам нужна эта проверка, если список не пустой?

Добавлено через 7 минут
(defun zeros (list)
(cond ((null list) nil)
((< (car list) 0) (cons 0 (zeros (cdr list))))
((cons (car list) (zeros (cdr list))))))
(zeros '(5 9 3 -4 5 0 -9))

как можно по-другому написать эту функцию, чтобы не было рекурсии
0
15 / 15 / 0
Регистрация: 14.03.2013
Сообщений: 77
28.03.2013, 18:13
чем тебе не нравится рекурсия?
0
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 17
28.03.2013, 18:16
надо ее сделать без рекурсии
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38228 / 21160 / 4314
Регистрация: 12.02.2012
Сообщений: 34,773
Записей в блоге: 14
28.03.2013, 18:28
Можно без рекурсии:

Lisp
1
2
3
4
5
6
7
8
9
(defun zeros (lst)
  (let ((res nil))
     (dolist (i lst (reverse res)) (push  (if (< i 0) 0 i) res))))
 
==> zeros
 
(zeros '(1 -5 2 -1 5 6))
 
==> (1 0 2 0 5 6)
0
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 17
28.03.2013, 18:31
а теперь можно объяснить по строчке, что мы делаем

Добавлено через 1 минуту
у меня ошибку выдает

;; Error: Unbound variable DEFUN in #<function 1 #xAC0FC0>
0
 Аватар для _sg
4710 / 4405 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
28.03.2013, 18:37
Lisp
1
2
3
4
5
(defun zeros (w)
  (substitute-if 0 #'minusp w))
 
> (zeros '(1 -5 6 -7 8 -9 -4))
(1 0 6 0 8 0 0)
Lisp
1
2
3
4
5
(defun zeros (w)
  (mapcar #'(lambda (a) (if (minusp a) 0 a)) w))
 
> (zeros '(1 -5 6 -7 8 -9 -4))
(1 0 6 0 8 0 0)
Lisp
1
2
3
4
5
6
7
(defun zeros (w)
  (loop for i in w
        if (minusp i) collect 0
        else collect i))
 
> (zeros '(1 -5 6 -7 8 -9 -4))
(1 0 6 0 8 0 0)
Lisp
1
2
3
4
5
6
7
(defun zeros (w)
  (cond ((null w) nil)
        ((< (car w) 0) (cons 0 (zeros (cdr w))))
        ((cons (car w) (zeros (cdr w))))))
 
> (zeros '(1 -5 6 -7 8 -9 -4))
(1 0 6 0 8 0 0)
Добавлено через 53 секунды
Определить функцию, заменяющую все отрицательные элементы списка значением 0.
1
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 17
28.03.2013, 19:14
(defun zeros (lst)
(let ((res nil))
(dolist (i lst (reverse res)) (push (if (< i 0) 0 i) res))))

объясните пожалуйста что обозначает и зачем нужна эта строчка:
(let ((res nil))
0
15 / 15 / 0
Регистрация: 14.03.2013
Сообщений: 77
28.03.2013, 19:15
локальной переменной res присваивается знаечение nil
0
0 / 0 / 0
Регистрация: 12.03.2013
Сообщений: 17
28.03.2013, 19:18
а зачем мы делаем это присваивание?
0
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
28.03.2013, 20:49
Один из стандартных способов порождения списка в Лиспе состоит в следующем: берётся пустой список, ему в голову добавляются значения с помощью функции push, а в конце список разворачивается с помощью функции nreverse. Вот в данном случае и вводится переменная res, в которой будет храниться результат и которая изначально имеет значение пустого списка.

Лирическое отступление. Вообще, есть две функции разворачивая списка: reverse и nreverse. Первая из них создаёт новый список, а вторая изменяет конс-ячейки, из которых состоит переданный ей список. Поэтому функция nreverse экономиченее, но ею не следует пользоваться, если вы не создали её аргумент только что или собираетесь использовать его в дальнейшем. Создание списка с нуля комбинацией push/nreverse безопасно и является классическим лисповым идиомом.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.03.2013, 20:49

Работа со списком
Напишите программу, которая запрашивает количество элементов списка у пользователя, а затем поочередно предлагает ...

Работа со списком
Приветствую всех. В файле null.txt есть определенный список: Vitaliy=6 Evgeniy=4 Vasiliy=1 Методом POST получаю именф Vitaliy...

работа со списком
Добрый день! Помогите с такой проблемой! Приведу пример. Есть форма на ней кнопки переходов, при нажатии на первую, открывается форма в...

Работа со списком
Ребят подскажите пожалуйста, как проще написать код (а то я полезла в дебри, но все же мне кажется, что должно быть проще) Есть два...

Работа со списком
Дан список состоящий и последовательности a(1),a(2),...,a(n). Определить максимальное количество подряд идущих положительных элементов...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. Сразу отвечу: А в PvP с ним. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru