Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 10
1

Из заданного списка удалить каждый второй элемент

21.05.2012, 16:33. Показов 1969. Ответов 5
Метки нет (Все метки)

Из заданного списка удалить каждый второй элемент, результирующий список переписать в обратном порядке.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2012, 16:33
Ответы с готовыми решениями:

Удалить из списка каждый второй элемент
Удалить из. списка каждый второй элемент

Удалить каждый второй элемент из списка
написать ф-ю удаление из списка к-го 2го эл-та

!Определить функцию, удаляющую из списка каждый второй элемент
Помогите определить функцию, удаляющую из списка каждый второй элемент. Спасибо!

Функция: удалить каждый третий элемент списка
Определить функцию, удаляющую из списка каждый третий элемент и возвращающую в качестве значения...

5
311 / 266 / 5
Регистрация: 03.04.2011
Сообщений: 456
21.05.2012, 16:47 2
Lisp
1
2
3
4
5
6
(defun f (list)
  (iter (for i in list by #'cddr)
        (collecting i at start)))
 
CL-USER> (f '(1 2 3 4 5))
(5 3 1)
1
4529 / 4235 / 359
Регистрация: 12.05.2012
Сообщений: 2,978
21.05.2012, 17:02 3
Lisp
1
2
3
4
5
(defun remove-eventh  (w &optional ac)  
  (if (null w) ac (remove-eventh (cddr w) (cons (car w) ac))))
 
> (remove-eventh '(1 2 3 4 5))
(5 3 1)
1
Модератор
Эксперт Python
28783 / 15610 / 3100
Регистрация: 12.02.2012
Сообщений: 25,612
Записей в блоге: 4
21.05.2012, 17:38 4
До кучи:

Lisp
1
2
3
4
5
6
7
8
9
(defun task (x) (let ((res nil) (f t)) 
   (dolist (i x res) (when f (setq res (cons i res))) 
 (setq f (not f)    ) )))
 
==> task
 
(task '(1 2 3 4 5))
 
==> (5 3 1)
1
311 / 266 / 5
Регистрация: 03.04.2011
Сообщений: 456
21.05.2012, 18:24 5
Анонимная рекурсия:
Lisp
1
2
3
4
5
6
7
8
(defun f (list)
  ((lambda (x) (funcall (funcall x x) list))
   (lambda (y) (lambda (list &optional acc)
                 (if list
                     (funcall (funcall y y)
                              (cddr list) 
                              (cons (car list) acc))
                     acc)))))
2
0 / 0 / 0
Регистрация: 12.04.2012
Сообщений: 10
21.05.2012, 20:43  [ТС] 6
Спасибо всем ^_^
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.05.2012, 20:43

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Заменить каждый второй элемент списка на 0,используя только рекурсию, CAR, CDR, CONS,COND
Заменить каждый второй элемент списка на 0,используя только рекурсию, CAR, CDR, CONS,COND

Lisp -> Erlang: удалить каждый третий элемент списка
удалить каждый 3-тий элемент списка пример что должно получиться: >(name ‘(a s d q w e z x...

Каждый нечетный элемент списка умножить на 2, каждый четный на 3
сначало пытаюсь написать хотя бы проверку на четность и умножение на 3. (defun четность (l) ...

каждый нечетный элемент списка умножить на 2, каждый четный на 3. использовать только рекурсию CAR,CDR,COND,CONS
каждый нечетный элемент списка умножить на 2, каждый четный на 3. использовать только рекурсию ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.