Szukam reguł dotyczących przekazywania funkcji szablonów C ++ jako argumentów. Jest to obsługiwane przez C ++, jak pokazano na przykładzie tutaj: #include <iostream> void add1(int &v) { v+=1; } void add2(int &v) { v+=2; } template <void (*T)(int &)> void doOperation() { int temp=0; T(temp); std::cout << "Result is " …
Kilka razy spotkałem się z terminem „Functor” podczas czytania różnych artykułów na temat programowania funkcjonalnego, ale autorzy zazwyczaj zakładają, że czytelnik już rozumie ten termin. Rozglądanie się w Internecie dostarczyło albo zbyt technicznych opisów (patrz artykuł Wikipedii ), albo niezwykle niejasne opisy (patrz sekcja Functors na tej stronie z samouczkiem …
Wyjaśniając komuś, czym jest klasa X, staram się znaleźć dobre przykłady struktur danych, które są dokładnie X. Proszę o przykłady: Konstruktor typów, który nie jest Functorem. Konstruktor typów, który jest Functorem, ale nie ma zastosowania. Konstruktor typów, który jest aplikacyjny, ale nie jest monadą. Konstruktor typów, który jest Monadą. Myślę, …
Zamknięte. To pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było na temat przepełnienia stosu. Zamknięte 4 lata temu . Popraw to pytanie F # pochodzi z OCaml, ale jakich głównych elementów brakuje lub które zostały dodane? W szczególności …
map :: (a -> b) -> [a] -> [b] fmap :: Functor f => (a -> b) -> f a -> f b liftM :: Monad m => (a -> b) -> m a -> m b Dlaczego mamy trzy różne funkcje, które zasadniczo robią to samo?
To nie jest kwestia funkcji lambda, wiem, że mogę przypisać lambdę do zmiennej. Jaki jest sens pozwalania nam deklarować, ale nie definiować funkcji w kodzie? Na przykład: #include <iostream> int main() { // This is illegal // int one(int bar) { return 13 + bar; } // This is legal, …
Ta Applicativeklisza reprezentuje luźne funktory monoidalne, które zachowują kartezjańską monoidalną strukturę w kategorii typowanych funkcji. Innymi słowy, biorąc pod uwagę obserwowane kanoniczne izomorfizmy, które (,)tworzą strukturę monoidalną: -- Implementations left to the motivated reader assoc_fwd :: ((a, b), c) -> (a, (b, c)) assoc_bwd :: (a, (b, c)) -> ((a, …
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.