Do czego stosować wyrażenia lambda?
Ostatnio zmodyfikowano 2012-01-07 20:55
jsc Temat założony przez niniejszego użytkownika |
Do czego stosować wyrażenia lambda? » 2012-01-07 18:21:21 Moje pytanie: - do czego nadają się najlepiej (sensie dobrych praktyk programowania)? - czy zacznę je stosować jeśli na większą skalę (powiedzmy aż do przesady) nie natnę się na jakieś pułapki (jej deklaracji nie ma w ogóle nazwy (może się nie znam, ale dla mnie to jest trochę podejrzane))? |
|
ison |
» 2012-01-07 18:25:16 - do czego nadają się najlepiej (sensie dobrych praktyk programowania)?
|
przykładowo jeśli chcesz przekazać wskaźnik do jakiejś krótkiej funkcji bez zasyfiania sobie kodu, std::sort( kontener.begin(), kontener.end(), funkcja_porownujaca );
jeśli funkcja porównująca to 1 linijka to wygodniej skorzystać z wyrażenia lambda zamiast tworzyć nową funkcję - czy zacznę je stosować jeśli na większą skalę (powiedzmy aż do przesady) nie natnę się na jakieś pułapki (jej deklaracji nie ma w ogóle nazwy (może się nie znam, ale dla mnie to jest trochę podejrzane))?
|
wyrażenia lambda nie zastępują zwykłego deklarowania funkcji, to służy do czegoś innego |
|
jsc Temat założony przez niniejszego użytkownika |
» 2012-01-07 18:37:16 std::sort( kontener.begin(), kontener.end(), funkcja_porownujaca );
|
Wg. mnie w tym konkretnym wypadku równie dobrze funkcja_porownujaca może być funkcją zadeklarowaną w bibliotece functional. |
|
DejaVu |
» 2012-01-07 18:56:11 W tym przypadku tak, ale tu nie chodzi o to co jest lepsze tylko jak można stosować rożne techniki.
/edit:
Wyrażenia lambda (C++11) |
|
michalp |
» 2012-01-07 20:55:20 Poczytaj o domknięciach (ang. closures). |
|
« 1 » |