> > DEO> ну да, почитал я главу про замыкания (closure) у Л.Уолла > DEO> и откровенно говоря не понял смысла введения нового термина > > sub seqgenerator_generator { > my $seed = 0; > return sub { return $seed += 1 }; > } > > my $x = seqgenerator_generator(0); > print &$x, &$x, &$x, "\n"; > my $y = seqgenerator_generator(0); > print &$y, &$y, &$y, "\n"; > print &$x, &$x, &$x, "\n"; > > Когда поймешь, как это работает - можно будет продолжить разговор. [off] можно несколько в другом тоне? [/off]
дык вроде ясно, каждый вызов возвращает ссылку на ф-цию связанную с конкретным экземпляром $seed, ну и так как ссылка на $seed существует и после того как из seqgenerator_generator возвращено управление, то $seed сборщиком мусора не удаляется (насколько я понимаю) и выведет сия программа текст вроде: 123 (первый экземпляр) 123 (второй экземпляр) 456 (продолжаем первый экземпляр) собственно клозура по определению в книжке - это ссылка на объект находящийся в другом блоке ну и в чем такая особенность данной ссылки что надо было определить отдельный термин для сего до меня пока не дошло, извините насколько я понимаю отдельный термин вводят когда предполагают специфические действия с сущностью не присущие другим сущностям но тут вроде блоки и ссылки вышеописанные действия перекрывают? -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]