Составители:
Рубрика:
104
Так как хвост списка есть список сам по себе, значение переменной
Tail может быть использовано в качестве объекта рекурсивного вызова
print_list:
print_list(Tail)
Когда испытывается данное подправило, Tail имеет значение [9,5,3].
Снова не проходит первый вариант, и соответствие устанавливается при
помощи второго. Переменной Head присваивается значение 9,котрое затем
печатается на экране. Процесс повторяется
со списком [5,3].
В конце концов, когда переменная Head принимает значение 3, пере-
менной Tail присваивается пустой список. Теперь при рекурсивном вызове
print_list(Tail) значение Tail соответствует объекту правила
print_list([])
Ввиду того, что этот вариант не имеет рекурсивных вызовов, цель счи-
тается удовлетворенной, и таким образом вырабатывается условие окончания
рекурсии print_list. Первый вариант
позоляет print_list завершиться успехом,
когда рекурсивные вызовы опустошат весь список.
Похожий процесс имеет место и при задании цели
print_list(["cat","dog","horse","cow"]).
Сначала переменной Head присваивается значение cat, cat печатается на
экране, а Tail принимает значение ["dog","horse","cow"]. В дальнейшем
при последовательном выполнении рекурсий все эти значения также отобра-
жаются на экран. Наконец, когда
Head приняло значение последнего элемен-
та исходного списка, cow, значением Tail становится пустой список. Вари-
ант
print_list[]
дает успех, тем самым завершая рекурсию.
Рекурсивные правила для работы со списками просты, но вместе с тем
и очень важны, ввиду их применимости в большинстве программ.
* Упражнение
5.10. Для списка ["Boston","Philadelphia","Seattle","Chicago"]
а) нарисуйте диаграмму
работы со списком при помощи метода деления
списка на голову и хвост;
б) запишите значения голов списков в процессе работы метода. в. Напишите
рекурсивное правило, которое печатает все элементы списка через два про-
бела.
5.5. Различные операции над списками
Различные операции, которые можно проделать над списками, вклю-
чают в себя
поиск элемента в списке, деление списка на два, присоединение
одного списка к другому, сортировку списка и создание списка из содер-
жимого базы данных. Настоящий раздел посвящен технике программирова-
ния этих операций.
Так как хвост списка есть список сам по себе, значение переменной Tail может быть использовано в качестве объекта рекурсивного вызова print_list: print_list(Tail) Когда испытывается данное подправило, Tail имеет значение [9,5,3]. Снова не проходит первый вариант, и соответствие устанавливается при помощи второго. Переменной Head присваивается значение 9,котрое затем печатается на экране. Процесс повторяется со списком [5,3]. В конце концов, когда переменная Head принимает значение 3, пере- менной Tail присваивается пустой список. Теперь при рекурсивном вызове print_list(Tail) значение Tail соответствует объекту правила print_list([]) Ввиду того, что этот вариант не имеет рекурсивных вызовов, цель счи- тается удовлетворенной, и таким образом вырабатывается условие окончания рекурсии print_list. Первый вариант позоляет print_list завершиться успехом, когда рекурсивные вызовы опустошат весь список. Похожий процесс имеет место и при задании цели print_list(["cat","dog","horse","cow"]). Сначала переменной Head присваивается значение cat, cat печатается на экране, а Tail принимает значение ["dog","horse","cow"]. В дальнейшем при последовательном выполнении рекурсий все эти значения также отобра- жаются на экран. Наконец, когда Head приняло значение последнего элемен- та исходного списка, cow, значением Tail становится пустой список. Вари- ант print_list[] дает успех, тем самым завершая рекурсию. Рекурсивные правила для работы со списками просты, но вместе с тем и очень важны, ввиду их применимости в большинстве программ. * Упражнение 5.10. Для списка ["Boston","Philadelphia","Seattle","Chicago"] а) нарисуйте диаграмму работы со списком при помощи метода деления списка на голову и хвост; б) запишите значения голов списков в процессе работы метода. в. Напишите рекурсивное правило, которое печатает все элементы списка через два про- бела. 5.5. Различные операции над списками Различные операции, которые можно проделать над списками, вклю- чают в себя поиск элемента в списке, деление списка на два, присоединение одного списка к другому, сортировку списка и создание списка из содер- жимого базы данных. Настоящий раздел посвящен технике программирова- ния этих операций. 104
Страницы
- « первая
- ‹ предыдущая
- …
- 102
- 103
- 104
- 105
- 106
- …
- следующая ›
- последняя »