Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lisp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Tierra
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 17
1

Рекурсия: дописать в конце списка суммарное количество подсписков всех уровней

19.01.2012, 21:32. Просмотров 864. Ответов 3
Метки нет (Все метки)

Используя приёмы рекурсии в лиспе, выполнить следующие преобразования:
Получать в качестве исходного, любой многоуровневый список вида
(a b (c ( d e ) f ( g )) h ( i j ))
Составить результирующий список виду
( a b ( c ( d e ) f ( g )) h ( i j )) 4 )
тоесть дописать в конце списка суммарное количество под списков всех уровней.

Работа за "спасибо", сессия, лисп некогда учить, а программу нужно только на лиспе написать...
Кто не был студентом, тому не понять!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.01.2012, 21:32
Ответы с готовыми решениями:

Написать функцию, которая вычисляет количество всех атомов в списке(кроме NIL) с учетом всех подсписков всех уровней вложенности
Написать функцию, которая вычисляет количество всех атомов в списке(кроме NIL) ...

Посчитать количество подсписков на верхнем уровне списка
Ребят, может кто знает как решить, а то я уже запуталась:(: 1)Напишите...

Определить количество подсписков, находящихся на указанном уровне заданного списка
Определить количество подсписков, находящихся на указанном уровне для...

Количество уровней списка с суммой, большей, чем заданное число
Доброго времени суток. Задача: Дан сложный список вида ((1 (2 4 3 6) 7) 9 8...

Дан список. Написать функцию, которая возвращает количество уровней сложного списка на которых есть два не числовых атома
Добрый вечер, такая вот задача Дан список ((a (2 b c 6) 7) d e ((9 f g) 12 (h...

3
bokunopico
306 / 261 / 5
Регистрация: 03.04.2011
Сообщений: 456
19.01.2012, 21:59 2
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun f (lst)
  (labels ((count-sublists (lst)
         (if lst
         (+ (if (atom (car lst))
            0
            (1+ (count-sublists (car lst))))
            (count-sublists (cdr lst)))
         0)))
    `(,@lst ,(count-sublists lst))))
 
CL-USER> (f '(a b (c (d e) f (g)) h (i j)))
(A B (C (D E) F (G)) H (I J) 4)
1
transformator.t
defun
596 / 610 / 44
Регистрация: 30.04.2011
Сообщений: 696
19.01.2012, 22:10 3
Lisp
1
2
3
4
5
6
7
8
(defun f (l)
           (labels ((fun (l)
                      (if (null l) 0
                          (if (consp (car l))
                              (+ (1+ (fun (car l)))
                                 (fun (cdr l)))
                              (fun (cdr l))))))
             (nconc l (list (fun l)))))
1
Tierra
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 17
19.01.2012, 22:14  [ТС] 4
Спасибо огромное ))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2012, 22:14

Произведение всех лементов списка и под списков (Рекурсия)
Нужнов с помощью рекурсии найти произведение всех элементов списка и под...

Число подсписков списка (использовать рекурсию)
Помогите решить задачу. Вычислить полное число подсписков, входящих в данный...

Удаление из списка четных атомов (с учетом подсписков)
Опишите функцию, удаляющую из списка четные атомы (с учетом подсписков). К...


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

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

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