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

Описать функцию, возвращающую список объектов, следующих непосредственно за заданным атомом

18.10.2014, 13:19. Просмотров 675. Ответов 5
Метки нет (Все метки)

Ребят, помогите пожалуйста, необходимо написать функцию, которая по списку lst и атому obj возвращает множество всех объектов, непосредственно следующих за вхождениями obj в lst. заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.10.2014, 13:19
Ответы с готовыми решениями:

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

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

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

Описать функцию, возвращающую пользовательский тип данных
реализуемо ли это? написал код, компилятор ругается: type shape = array of integer; ......

__________________
5
Заблокирован
18.10.2014, 15:30 2
Lisp
1
2
3
4
5
6
7
8
(defun rec-sort (obj lst)
  ;; по списку lst и атому obj возвращает множество всех объектов,
  ;; непосредственно следующих за вхождениями obj в lst.
  ;; (rec-sort 3 '(0 1 2 3 4 5 6 7 8 9 1 3 5 8 13 1 3))
  ;; ==> (4 5) 
  (cond ((null (cdr lst)) nil)
        ((= obj (car lst)) (cons (cadr lst) (rec-sort obj (cdr lst))))
        ((rec-sort obj (cdr lst)))))
3
4493 / 4203 / 354
Регистрация: 12.05.2012
Сообщений: 2,959
18.10.2014, 18:07 3
Lisp
1
2
3
4
5
6
7
8
9
10
(defun aftershock (w z)
  (remove-duplicates (next w z)))
 
(defun next (w z &aux (a (car w)) (d (cdr w)))
  (cond ((null d) nil)
        ((equalp a z) (cons (car d) (next d z)))
        ((next d z))))
 
> (aftershock '(a b a b a c a) 'a)
(B C)
Добавлено через 6 минут
Lisp
1
2
3
4
5
6
7
(defun aftershock (w z &optional ac &aux (a (car w)) (d (cdr w)))
  (cond ((null d) (nreverse ac))
        ((or (not (equalp a z)) (member (car d) ac)) (aftershock d z ac))
        ((aftershock d z (cons (car d) ac)))))
 
> (aftershock '(a b a b a c a) 'a)
(B C)
Добавлено через 4 минуты
Lisp
1
2
3
4
5
6
7
8
9
10
(defun aftershock (w z)
  (remove-duplicates (next w z)))
 
(defun next (w z) 
  (loop for a in w 
        for b in (cdr w) 
        when (equalp a z) collect b))
 
> (aftershock '(a b a b a c a) 'a)
(B C)
3
Модератор
Эксперт Python
28529 / 15399 / 3043
Регистрация: 12.02.2012
Сообщений: 25,230
Записей в блоге: 4
18.10.2014, 20:17 4
Вот решение, принимающее многоуровневые списки:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(defun task (lst obj)
  (let ((r nil) (flg nil))
   (iter (for i in lst)
     (when (listp i) (setq r (append r (task i obj))))
     (cond ((equal i obj) (setq flg t)) 
           (flg (collecting i into r) (setq flg nil))))
   r))
 
==> task
 
(task '(1 2 3 4 (2 3 5) 6) 3)
 
==> (4 5)
 
(task '(1 2 3 4 (2 3 (5)) 6) 3)
 
==> (4 (5))
2
0 / 0 / 0
Регистрация: 14.07.2013
Сообщений: 24
18.10.2014, 21:42  [ТС] 5
Спасибо огромное всем, очень благодарна
0
429 / 383 / 200
Регистрация: 12.08.2011
Сообщений: 1,610
23.10.2014, 15:06 6
Язык Factor:

Lisp
1 { 4 3 1 3 2 1 3 4 1 2 } dup [ pick = ] find drop 1 + tail swap drop
 
--- Data stack:
{ 3 2 1 3 4 1 2 }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2014, 15:06

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Описать функцию, возвращающую N-ю цифру целого положительного числа
описать функцию DigitN (K,N) целого типа ,возвращающую N-ю цифру целого положительного числа K (...

Описать функцию, возвращающую k-й элемент файла целых чисел
Описать функцию getInt(Name,k) целого типа, возвращающую k-й элемент файла целых чисел с именем...

Описать функцию возвращающую N-ю цифру целого положительного числа
Описать функцию DigitN(K, N) целого типа, возвращающую N-ю цифру целого положительного числа K...

Написать функцию, принимающую функцию l, три списка и возвращающую список со значениями, полученными применением функции l к тройкам исходных значений
Дорогие программисты,помогите пожалуйста с этим хаскеллом!Никак не могу решить эту задачу!!Одну я...


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

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

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