Dopiero teraz dowiaduję się o wskaźnikach funkcji i kiedy czytałem rozdział K&R na ten temat, pierwszą rzeczą, która mnie uderzyła, było: „Hej, to jest trochę jak zamknięcie”. Wiedziałem, że to założenie jest w jakiś sposób fundamentalnie błędne i po wyszukiwaniu w Internecie nie znalazłem żadnej analizy tego porównania.
Dlaczego więc wskaźniki funkcji w stylu C zasadniczo różnią się od zamknięć lub lambd? O ile wiem, ma to związek z faktem, że wskaźnik funkcji nadal wskazuje zdefiniowaną (nazwaną) funkcję, w przeciwieństwie do praktyki anonimowego definiowania funkcji.
Dlaczego przekazywanie funkcji do funkcji jest postrzegane jako silniejsze w drugim przypadku, w którym nie jest ona nazwana, niż w pierwszym, w którym jest to zwykła, codzienna funkcja, która jest przekazywana?
Proszę, powiedz mi, jak i dlaczego się mylę, porównując te dwie rzeczy tak blisko.
Dzięki.