LINUX.ORG.RU
ФорумTalks

Ну всё! Уж теперь то лиспу точно копец!


0

0

Комитет С++ планирует добавить в следующую версию стандарта С++ поддержку lambda-функций и замыканий.

Примеры lambda-функций:

for_each( w.begin(), w.end(),
                []( const Widget& w ) { cout << w << " "; } );

int minWeight = 100;
find_if( w.begin(), w.end(),
             []( const Widget& w ) -> bool { w.Weight() > minWeight; } );

Замыкания там, конечно, безобразные. Если, например, захватить ссылки
на локальные переменные, то, как несложно догадаться, 
the effect
of invoking a closure object, or a copy, after the innermost block scope of the context of the lambda expression has
been exited is undefined.
Почему это назвали замыканием а не обычной вложенной функцией, мне
не совсем понятно, может кто объяснит?
В таком «замыкании» достаточно сохранить указатель на фрейм
статически предыдущей функции.
Это, кстати, то, что делает delegate в D 1.0, в D 2.0 замыкания куда честнее.

Ссылка на блог Herb Sutter-а, С++ эксперта, члена комитета стандарта ISO С++,
работающего архитектором программного обеспечения в Microsoft:
http://herbsutter.spaces.live.com/

Ссылка на описание:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2550.pdf
★★★★★

Re: Ну всё! Уж теперь то лиспу точно копец!

Нет, теперь-то с++ добьют контрольным выстрелом в голову

anonymous ()

Re: Ну всё! Уж теперь то лиспу точно копец!

>> for_each( w.begin(), w.end(), []( const Widget& w ) { cout << w << " "; } );

код с кутэшным макросом foreach красивее выглядит :)

Adjkru ★★★★★ ()

Re: Ну всё! Уж теперь то лиспу точно копец!

Тычо, тока узнал? o_O

tailgunner ★★★★★ ()
Ответ на: Re: Ну всё! Уж теперь то лиспу точно копец! от tailgunner

Re: Ну всё! Уж теперь то лиспу точно копец!

Вернее про лямбду слухи ходили, а про замыкания не слышал, только обрадовался, да не тут то было. С++ меня опять обломал :( И D разочаровывает. Нет в жизни счастья, уйду на скалу :)

Legioner ★★★★★ ()

Re: Ну всё! Уж теперь то лиспу точно копец!

врядли лиспу придёт конец :) слишком уж он сильно притягивает всяких маргиналов :)

amoralyrr ★☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.