vvpoloskin
Сен. 2, 2011 10:09:27
Вопрос знатокам.
Можно ли на python организовать бесконечный цикл средствами функционального программирования.
В статьях в основном пишут про рекурсию для реализации цикла while. Но для бесконечного цикла это не подходит, по крайней мере, в явном виде.
И вообще, как работает стек в обычном CPython? Интересует в общем и в случае замыкания в частности.
Запускать интерпретатор под GDB как-то душу не греет.
Заранее спасибо.
Андрей Светлов
Сен. 2, 2011 10:17:57
1. Нет
2. Смотрите FrameObject
vvpoloskin
Сен. 2, 2011 10:42:24
Хорошо.
Появилась мысль. Применить map на бесконечную последовательность или на замкнутый список. Осталось понять, как можно сделать чт-то наподобие break в функции map.
Enchantner
Сен. 2, 2011 11:18:05
Андрей СветловАндрей Светлов
1. Нет
а itertools.count() и иже с ним?
Андрей Светлов
Сен. 2, 2011 11:56:24
Мне почему-то представилась бесконечная рекурсия, а не бесконечный генератор.
Enchantner
Сен. 2, 2011 14:23:07
Андрей Светлова если что-то типа хвостового вызова? Как тут, например:
http://paulbutler.org/archives/tail-recursion-in-python/ . Правда, while все равно используется, потому что в питоне нет реализации tail call, а как говорил Гвидо, и не будет.
Бесконечная хвостовая рекурсия достигается и
изменением байт-кода, правда я так никогда не поступлю, наверное.
> while. Но для бесконечного цикла это не подходит, по крайней мере, в явном виде.
Можешь пояснить?
..bw
Fibio
Сен. 3, 2011 11:24:51
бесконечный цикл:
while True:
print ‘do something’
GaiveR
Сен. 4, 2011 00:21:39
Fibio, вопрос о реализации бесконечного цикла средствами функционального программирования. В вашем примере представлен императивный подход, который для всех очевиден.
Обедающий философ
Сен. 4, 2011 14:48:28
Enchantner
питоне нет реализации tail call, а как говорил Гвидо, и не будет.
А в чём сложность сделать хвостовую рекурсию? Даже я её делал как-то раз.