Właśnie przeczytałem https://techfindings.one/archives/2652 o programowaniu funkcjonalnym i natknąłem się na to:
funkcje anonimowe często nie mogą być skompilowane w JIT i nigdy nie zostaną zoptymalizowane
Czy ktoś może mi wyjaśnić, dlaczego tak jest?
javascript
functional-programming
thadeuszlay
źródło
źródło
Odpowiedzi:
Istnieje powszechne nieporozumienie na temat funkcji zagnieżdżonych, nazwanych lub anonimowych, w których ludzie myślą, że ponieważ funkcja jest zadeklarowana w innej funkcji, kompilator musi ją rekompilować za każdym razem, gdy wywoływana jest funkcja zewnętrzna. To nie jest prawda. Z funkcji kod jest stała, nawet jeśli jego kontekst wywołujący nie jest, a to może być inlined lub optymalizowany tak jak każdej innej funkcji. To zamieszanie wydaje się szczególnie silne wśród programistów, którzy przede wszystkim używają funkcji zagnieżdżonych w implementacjach języka interpretowanego / JIT, jak w tym pytaniu .
W tym artykule jest kilka innych podobnych nieporozumień, które pokazują, że nie rozumie problemów tak, jak mu się wydaje. Nie uważałbym tego za godne zaufania źródło wiedzy na temat programowania funkcjonalnego.
źródło