Lambdy są funkcjami anonimowymi (tj. Nie posiadającymi identyfikatora, jak metody w klasie), które mogą być używane w wielu różnych językach programowania.
Niedawno wpadłem na następującą sytuację. class A{ public: void calculate(T inputs); } Po pierwsze, Areprezentuje obiekt w świecie fizycznym, co jest silnym argumentem za nierozdzielaniem klasy. Teraz calculate()okazuje się dość długą i skomplikowaną funkcją. Widzę trzy możliwe struktury: napisz to jako ścianę tekstu - zalety - wszystkie informacje są w …
List.ForEach(Console.WriteLine); List.ForEach(s => Console.WriteLine(s)); Dla mnie różnica jest czysto kosmetyczna, ale czy istnieją jakieś subtelne powody, dla których jedno może być preferowane nad drugim?
Większość języków programowania funkcyjnego (np Common Lisp, Scheme / rakieta, Clojure, Haskell, Scala, Ocaml, SML) obsługuje niektórych funkcji wspólnego wyższego rzędu na listach, takich jak map, filter, takeWhile, dropWhile, foldl, foldr(patrz np Common Lisp, Scheme / rakieta, Clojure obok siebie dokumentacja , dokumentacja Haskell , Scala , OCaml i SML …
W bibliotekach ciężkich przed biblioteką Java 8, takich jak Guava, dane wyjściowe używają wspólnych interfejsów Java Collection Framework, więc łatwo jest przekazać je zewnętrznym / wewnętrznym interfejsom API i nadal wykorzystywać leniwe obliczenia, jeśli metoda biblioteczna to robi (np. Leniwa filter()i transform()). Jednak w strumieniach Java 8 wezwanie do uzyskania …
Java 8 dodała koncepcję funkcjonalnych interfejsów , a także wiele nowych metod, które zostały zaprojektowane do przyjmowania funkcjonalnych interfejsów. Wystąpienia tych interfejsów można zwięźle utworzyć za pomocą wyrażeń referencyjnych metod (np. SomeClass::someMethod) I wyrażeń lambda (np (x, y) -> x + y.). Wspólnie z koleżanką mamy różne opinie na temat …
Badałem nowe funkcje JDK8, takie jak wyrażenia lambda, metody rozszerzenia i nowy interfejs API strumienia. Najwyraźniej żadna z tych funkcji nie jest nowa w świecie programowania i dlatego zastanawiałem się, dlaczego wszystkie te rzeczy są dostępne w Javie. Wyrażenia lambda mieliśmy w Lisp (1958), SML (1973), Haskell (1990), Python (1991), …
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.