Zacząłem poważnie przyglądać się Lispowi w ten weekend (tzn. Uczyłem się tylko Lisp i nie wracam do projektów w C #) i muszę powiedzieć, że to uwielbiam. Zajmowałem się innymi językami funkcjonalnymi (F #, Haskell, Erlang), ale nie czułem remisu, który dał mi Lisp.
Teraz, gdy kontynuuję naukę Lisp, zacząłem się zastanawiać, dlaczego języki niefunkcjonalne nie obsługują funkcji najwyższej klasy. Wiem, że języki takie jak C # mogą robić podobne rzeczy z delegatami i do tego stopnia, że możesz używać wskaźników do funkcji w C / C ++, ale czy istnieje powód, dla którego nigdy nie stałoby się to funkcją w tych językach? Czy jest wadą uczynienie funkcji pierwszorzędnymi? Jest to dla mnie niezwykle przydatne, więc nie rozumiem, dlaczego więcej języków (poza paradygmatem funkcjonalnym) go nie implementuje.
[Edytuj] Doceniam dotychczasowe odpowiedzi. Ponieważ pokazano mi, że wiele języków obsługuje teraz funkcje najwyższej klasy, ponownie sformułuję pytanie, aby wyjaśnić, dlaczego ich wdrożenie zajmuje tyle czasu? [/Edytować]