Myślę, że głosowanie nie jest tu uzasadnione, a także nie można zastosować linku do mojego pytania. Zadaję pytanie techniczne dotyczące JIT i funkcji anonimowych - nie pytam o opinie / smak ani dyskusję. Proszę innych, aby wyjaśnili mi, dlaczego anonimowych funkcji nie można skompilować w JIT. Nawet twój link mówi: „Chciałbym, żeby inni mi wyjaśnili ______”, to prawdopodobnie nic ci nie jest. ”@Gnat
Zanim zapytasz „Dlaczego?” powinieneś najpierw zapytać: „Czy to w ogóle prawda?”. W tej sprawie dzwonię do BS. Istnieją 4 różne silniki JS w 4 głównych przeglądarkach, a ogólny twierdzenie, że żadna z nich nie zoptymalizuje anonimowych funkcji, bez odniesienia czy danych, jest bardzo odważne.
Jestem pewien, że przynajmniej silnik V8 z pewnością jest w stanie skompilować anonimowe funkcje JIT. Źródło: Przeczytałem pokrewne części kodu źródłowego. I nie ma technicznego powodu, dla którego powinno to być niemożliwe. Więc przesłanka pytania jest błędna. Rodzi to pytanie, dlaczego autor uważa, że to stwierdzenie ma sens. Ale nie możemy tego wiedzieć i nie jest to miejsce do omawiania tego, jak wyjaśnia link komara.
Rozumiem twój punkt widzenia i zgadzam się z tobą @SebastianRedl. Nie zrozumiałem tego stwierdzenia, ale zamiast kopać głębiej, wybrałem łatwą trasę i zapytałem tutaj.
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.
Dzięki za wytłumaczenie. Sam nie jestem ekspertem w dziedzinie informatyki (CS). Nie mam nawet dyplomu ani studiów CS. Dlatego trudno mi samemu wszystko zbadać. Czy możesz wyjaśnić, jakie inne punkty autor powiązanego artykułu nie uzyskał pełnej poprawności?
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.