![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Всем доброго времени суток!
Уже 20 раз перечитываю раздел "Замыкания" и по правде говоря - ничего не понял. Чувствую что где-то рядом кручусь, но всё равно не пойму, в тоже время чувствую что пропускать такую тему просто нельзя (почему-то мне кажется что она важна). Может кто подскажет: 1. Зачем они нужны? 2. Где реально их можно реализовать? Заранее благодарен, Денис -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| acp |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 4.2.2003 Где: Владимир Репутация: нет Всего: 2 |
А что это такое? К чему относится? Явно перевод какого-то английского термина на русский, но о таком я не слышал...
|
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
У вас есть под рукой Programming Perl (превод на русский)? Если да, стр. 306. Если нет дайте мне знать, значит постараюсь переписать главу сюда.
Это сообщение отредактировал(а) korob2001 - 8.5.2003, 17:02 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| acp |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 4.2.2003 Где: Владимир Репутация: нет Всего: 2 |
Угу. Есть. Правда эл. версия и на английском. (правда не Вася Пупкин, а Петя Васечкин. И не выиграл, а проиграл... Дело в чём, я не особо специалист по различным терминам. Если просто сказать, к чему это относится, то я скажу, зачем это (если знаю). |
|||
|
||||
| acp |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 4.2.2003 Где: Владимир Репутация: нет Всего: 2 |
Почти всё ясно. Промт помог. Оказывается это "closures".
Нашёл я их в книжке. Называют так функции, когда они возвращает указатель на анономную подфункцию. Зачем это надо? не знаю. Ни разу не использовал, и не собираюсь в ближайшие пару лет (если не понадобится). Ну а в принципе, в микромасштабе, они нужны в случае когда требуется создать несколько анонимных функций, причём их нужно проинициализировать, причём разными значениями. В среднем масштабе - это позволяет потратить немного меньше времени, т.к. позволяет создать несколько экземпляров анонимных функций быстрее. В глобальном масштабе (т.е. применительно к какой-то задаче) не знаю... |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: 31 Всего: 61 |
Большое спасибо.
-------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| desyatnik |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 13.8.2002 Где: Мичуринск Репутация: нет Всего: нет |
Замыкания (closures) - понятие из функционального программирования. Простой пример: возьмём функцию f от x, которая ссылается на a и b:
f x = b (x*a) Переменная x - аргумент, относится к самой функции. Переменные a и b - внешние по отношению к этой функции, они к ней не относятся, но нужны для вычислений. Всё множество внешних переменных называется окружением, а окружение + функция = замыкание. Примечания: 1) в ФП переменные имеют только одно значение (т.е. они больше похожи на константы в других языках) 2) в переменных содержатся и функции Без замыканий невозможно полноценное использование функций высшего порядка (а это - очень мощный инструмент!) --------------------
WBR, Dejrgris |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |