Я новичок в Common Lisp и функциональном программировании, но у меня большой опыт работы с такими языками, как C, C ++, C #, Java и так далее. Мне не удается найти самый вложенный список внутри списка. Я ввел что-то вроде этого:
(0 1 (2 3) 4 (5 (6 (7) 8)) 9)
Я хотел бы получить наиболее вложенный список внутри этого списка, который в данном случае равен
(7)
. У меня была идея, что я мог бы каким-то образом сгладить список, пока не останется только один под- список оставлен. Чтобы проиллюстрировать, что я имею в виду, вот несколько шагов:
Шаг 1. - ввод:
(0 1 (2 3) 4 (5 (6 (7) 8)) 9)
Шаг 2. - развернуть " Но я вижу здесь проблему, когда может появиться два или более таких списка. Пожалуйста, поделитесь своими мыслями по этому поводу.
У меня проблемы с реализацией этой процедуры в Common Lisp, поэтому я был бы благодарен за некоторые указатели в правильном направлении, возможно, за какой-нибудь пример кода и так далее. Это домашнее задание, поэтому я не жду полного решения, но был бы рад, если бы кто-нибудь указал, возможно, более простое и лучшее решение и его реализацию.