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

Рекурсия простая и параллельная

20.12.2014, 20:26. Показов 2190. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Определить функцию, замещающую в в списке все вхождения S1 на S2
a) для элементов верхнего уровня списка; это с помощью простой рекурсии
b) для списка, содержащего подсписки; это параллельной рекурсией
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2014, 20:26
Ответы с готовыми решениями:

Простая рекурсия
Определить две рекурсивных функции. Распечатать результаты трассировки. Указать вид рекурсии (по...

Простая рекурсия
Помогите пожалуйста: Составить функцию factor с одним аргументом - числом, результатом действия...

Простая рекурсия CLISP
Здравствуйте, помогите пожалуйста составить функцию separate для преобразования списка вида (1 2 3...

LISP простая рекурсия
необходимо написать маленькую программу, с использованием управляющих форм LISPa. реализовать:...

2
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,641
Записей в блоге: 13
20.12.2014, 20:52 2
Лучший ответ Сообщение было отмечено SEV24 как решение

Решение

Все это делалось уже добрый десяток раз...

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
(defun rep-s (lst s1 s2) ;; простая рекурсия
  (if lst (if (equal (car lst) s1) 
              (cons s2 (rep-s (cdr lst) s1 s2))
              (cons (car lst) (rep-s (cdr lst) s1 s2)))
          nil))
 
==> rep-s
 
(rep-s '((a b) c d (a b)) '(a b) 'x)
 
==> (x c d x)
 
(defun rep-p (lst s1 s2) ;; параллельная рекурсия
  (cond ((null lst) nil)
        ((equal (car lst) s1) (cons s2 (rep-p (cdr lst) s1 s2)))
        ((listp (car lst)) (cons (rep-p (car lst) s1 s2) (rep-p (cdr lst) s1 s2)))
        (t (cons (car lst) (rep-p (cdr lst) s1 s2)))))
 
==> rep-p
 
(rep-p '((a b) c d ((a b))) '(a b) 'x)
 
==> (x c d (x))
2
0 / 0 / 0
Регистрация: 20.12.2014
Сообщений: 3
20.12.2014, 21:03  [ТС] 3
Спасибо!
0
20.12.2014, 21:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2014, 21:03
Помогаю со студенческими работами здесь

Простая рекурсия. Common Lisp
Составить функцию destruct_last с одним аргументом - списком, функцию которая исключала бы из этого...

Объясните, как работает простая рекурсия
функция луковица, можете пожалуйста объяснить на словах как тут работает рекурсия. (defun onion...

Параллельная рекурсия
Здраствуйте, мне нужна помощь с распараллеливанием функции для нахождения определителя квадратной...

простая рекурсия
дана задача: Программа вводит число с клавиатуры. Если число больше 0, то вычисляется sin(x), если...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru