Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замыкания 
:(
    Опции темы
korob2001
Дата 8.5.2003, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Всем доброго времени суток!
Уже 20 раз перечитываю раздел "Замыкания" и по правде говоря - ничего не понял. Чувствую что где-то рядом кручусь, но всё равно не пойму, в тоже время чувствую что пропускать такую тему просто нельзя (почему-то мне кажется что она важна).

Может кто подскажет:
1. Зачем они нужны?
2. Где реально их можно реализовать?

Заранее благодарен,
Денис


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
acp
Дата 8.5.2003, 16:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 4.2.2003
Где: Владимир

Репутация: нет
Всего: 2



А что это такое? К чему относится? Явно перевод какого-то английского термина на русский, но о таком я не слышал...
PM WWW ICQ   Вверх
korob2001
Дата 8.5.2003, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



У вас есть под рукой Programming Perl (превод на русский)? Если да, стр. 306. Если нет дайте мне знать, значит постараюсь переписать главу сюда.

Это сообщение отредактировал(а) korob2001 - 8.5.2003, 17:02


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
acp
Дата 8.5.2003, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 4.2.2003
Где: Владимир

Репутация: нет
Всего: 2



Цитата
Programming Perl (превод на русский)

Угу. Есть. Правда эл. версия и на английском. (правда не Вася Пупкин, а Петя Васечкин. И не выиграл, а проиграл... smile.gif )

Дело в чём, я не особо специалист по различным терминам. Если просто сказать, к чему это относится, то я скажу, зачем это (если знаю).
PM WWW ICQ   Вверх
acp
Дата 8.5.2003, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 4.2.2003
Где: Владимир

Репутация: нет
Всего: 2



Почти всё ясно. Промт помог. Оказывается это "closures".

Нашёл я их в книжке. Называют так функции, когда они возвращает указатель на анономную подфункцию.

Зачем это надо? не знаю. Ни разу не использовал, и не собираюсь в ближайшие пару лет (если не понадобится).

Ну а в принципе, в микромасштабе, они нужны в случае когда требуется создать несколько анонимных функций, причём их нужно проинициализировать, причём разными значениями.

В среднем масштабе - это позволяет потратить немного меньше времени, т.к. позволяет создать несколько экземпляров анонимных функций быстрее.

В глобальном масштабе (т.е. применительно к какой-то задаче) не знаю...
PM WWW ICQ   Вверх
korob2001
Дата 9.5.2003, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Большое спасибо. tounge.gif


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
desyatnik
Дата 24.5.2003, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 13.8.2002
Где: Мичуринск

Репутация: нет
Всего: нет



Замыкания (closures) - понятие из функционального программирования. Простой пример: возьмём функцию f от x, которая ссылается на a и b:

f x = b (x*a)

Переменная x - аргумент, относится к самой функции. Переменные a и b - внешние по отношению к этой функции, они к ней не относятся, но нужны для вычислений. Всё множество внешних переменных называется окружением, а окружение + функция = замыкание.

Примечания:
1) в ФП переменные имеют только одно значение (т.е. они больше похожи на константы в других языках)
2) в переменных содержатся и функции

Без замыканий невозможно полноценное использование функций высшего порядка (а это - очень мощный инструмент!)
--------------------
WBR, Dejrgris
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2309 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.