Форум программистов, компьютерный форум, киберфорум
Наши страницы

Lisp

Войти
Регистрация
Восстановить пароль
 
Tierra
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 17
#1

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

19.01.2012, 21:32. Просмотров 834. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Рекурсия: дописать в конце списка суммарное количество подсписков всех уровней (Lisp):

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

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

Определить количество подсписков, находящихся на указанном уровне заданного списка - Lisp
Определить количество подсписков, находящихся на указанном уровне для заданного списка (defun lv-count (lst lv) (if (zerop lv) ...

Количество уровней списка с суммой, большей, чем заданное число - Lisp
Доброго времени суток. Задача: Дан сложный список вида ((1 (2 4 3 6) 7) 9 8 ((9 10 11) 12 (13 14) 15) ... ). Написать функцию, которая...

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

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

3
bokunopico
303 / 258 / 2
Регистрация: 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
584 / 598 / 43
Регистрация: 30.04.2011
Сообщений: 692
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
19.01.2012, 22:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2012, 22:14
Привет! Вот еще темы с ответами:

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

Вывести список сумм подсписков заданного списка - Lisp
Требуется написать функцию, выводящую список сумм подсписков заданного списка. Я написал для простых подсписков, например (f '((2 5 7) (8...

Определить количество подсписков и количество элементов в них - Lisp
Здравствуйте! Помогите пожалуйста дописать нормально программу. В чем суть - программа должна рекурсивно определять число подсписков на...

Вычислить сумму числовых элементов списка, учитывая элементы подсписков - Lisp
Доброго времени суток! Задача состоит в следующем: Вычислить сумму числовых элементов списка, учитывая элементы подсписков. Вот мой...


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

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

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