Powiedzmy, że fn(x)jest to czysta funkcja, która robi coś kosztownego, na przykład zwraca listę głównych czynników x. Powiedzmy, że tworzymy zapamiętaną wersję tej samej funkcji memoizedFn(x). Zawsze zwraca ten sam wynik dla danych wejściowych, ale zachowuje prywatny bufor poprzednich wyników w celu poprawy wydajności. Formalnie rzecz biorąc, jest memoizedFn(x)uważany za …
Powiedzmy, że mamy normalną czystą funkcję, taką jak function add(a, b) { return a + b } A następnie zmieniamy go tak, aby miał efekt uboczny function add(a, b) { writeToDatabase(Math.random()) return a + b; } O ile wiem, nie jest to uważane za funkcję czystą, ponieważ często słyszę, jak …
Poniższe przykłady kodu stanowią kontekst mojego pytania. Klasa pokoju jest inicjowana przez delegata. W pierwszej implementacji klasy Room nie ma strażników przed delegatami, którzy zgłaszają wyjątki. Takie wyjątki zostaną przeniesione do właściwości North, gdzie delegowany jest oceniany (uwaga: metoda Main () pokazuje, jak instancja Room jest używana w kodzie klienta): …
Odbyłem krótką debatę ze współpracownikiem. Mówiąc najprościej, czy istnieje dobry powód, aby ukrywać / enkapsulować funkcje, które są czyste? Przez „czysty” rozumiem definicję wikipedii : Zawsze zwraca te same wyniki z tego samego wejścia. (Ze względu na tę dyskusję Foo Create(){ return new Foo(); }uważa się ją za nieczystą, jeśli …
Uczę się o kontraktach kodowych w .NET i staram się zrozumieć ideę czystych konstruktorów. Dokumentacja kontraktów kodowych stanowi: Wszystkie metody wywoływane w ramach umowy muszą być czyste; oznacza to, że nie mogą aktualizować żadnego istniejącego stanu. Metoda czysta może modyfikować obiekty utworzone po wejściu do metody czystej. A PureAttributedokumentacja stwierdza: …
Ponieważ czystość parametru wejściowego jest nieznana do czasu działania, czy funkcja jest natychmiast uważana za nieczystą, jeśli przyjmuje funkcję jako parametr wejściowy? Powiązane: jeśli funkcja stosuje funkcję czystą, która jest zdefiniowana poza funkcją, ale nie jest przekazywana jako parametr, czy nadal jest czysta, jeśli spełnia kryteria braku efektów ubocznych, a …
„Idealna liczba argumentów dla funkcji wynosi zero” jest po prostu błędna. Idealna liczba argumentów to dokładnie liczba potrzebna do tego, aby twoja funkcja była wolna od efektów ubocznych. Mniej niż to, a niepotrzebnie powodujesz, że twoje funkcje są nieczyste, zmuszając cię do ucieczki od otchłani sukcesu i wspinania się po …
Przeczytałem kiedyś, że metoda powinna albo mieć wartość zwracaną (i być referencyjnie przezroczysta), albo mieć skutki uboczne, ale nie jedno i drugie. Nie mogę znaleźć żadnych odniesień do tej reguły, ale chcę dowiedzieć się więcej na jej temat. Jakie jest pochodzenie tej porady? Z jakiej osoby lub społeczności powstało? Dodatkowy …
Zgodnie z Wikipedią: W programowaniu komputerowym funkcję można opisać jako czystą, jeśli obie instrukcje dotyczące funkcji hold: Funkcja zawsze ocenia tę samą wartość wyniku, biorąc pod uwagę te same wartości argumentu. Wartość wyniku funkcji nie może zależeć od żadnych ukrytych informacji lub stanów, które mogą się zmieniać w trakcie wykonywania …
Czytam i słyszę, że ludzie (również na tej stronie) rutynowo chwalą paradygmat programowania funkcjonalnego, podkreślając, jak dobrze jest mieć wszystko niezmienne. W szczególności ludzie proponują to podejście nawet w tradycyjnie imperatywnych językach OO, takich jak C #, Java lub C ++, nie tylko w czysto funkcjonalnych językach, takich jak Haskell, …
Jeśli moja funkcja spełnia poniżej dwóch wymagań, uważam, że funkcja Sum zwraca sumę pozycji na liście, na której pozycja ocenia się na prawdę, jeśli dany warunek można uznać za funkcję czystą, prawda? 1) Dla danego zestawu i / p zwracane jest to samo o / p, niezależnie od czasu wywołania …
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.