Programowanie funkcjonalne to paradygmat programowania oparty na budowaniu abstrakcji za pomocą funkcji, unikaniu skutków ubocznych i zmianie stanu. Czyste funkcjonalne programowanie jest bezpieczne dla wątków.
Od jakiegoś czasu jestem programistą WWW, a ostatnio zacząłem uczyć się programowania funkcjonalnego. Podobnie jak inni, miałem poważne problemy z zastosowaniem wielu z tych koncepcji w mojej pracy zawodowej. Dla mnie głównym powodem tego jest to, że widzę konflikt między celem FP, jakim jest pozostanie bezpaństwowcem, wydaje się zupełnie sprzeczne …
W obecnym stanie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub ekspertyzą, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy, aby uzyskać …
Próbuje dowiedzieć się F #, ale irytować, gdy próbuje odróżnić krotnie i zmniejszyć . Fold wydaje się robić to samo, ale ma dodatkowy parametr. Czy istnieje uzasadniony powód, dla którego te dwie funkcje istnieją, czy też mają one służyć osobom z różnych środowisk? (Np .: ciąg i ciąg w C …
Od dawna zastanawiałem się, dlaczego leniwa ocena jest przydatna. Nikt jeszcze nie wyjaśnił mi w sposób, który miałby sens; przeważnie kończy się to „zaufaniem mi”. Uwaga: nie mam na myśli zapamiętywania.
Jaki jest najbardziej idiomatyczny sposób osiągnięcia czegoś takiego w Haskellu: foldl (+) 0 [1,2,3,4,5] --> 15 Lub jego odpowiednik w Rubim: [1,2,3,4,5].inject(0) {|m,x| m + x} #> 15 Oczywiście Python udostępnia reducefunkcję, która jest implementacją fold, dokładnie tak, jak powyżej, jednak powiedziano mi, że „pythonowym” sposobem programowania jest unikanie lambdaterminów …
Większość źródeł definiuje czystą funkcję jako posiadającą następujące dwie właściwości: Jego wartość zwracana jest taka sama dla tych samych argumentów. Jego ocena nie ma skutków ubocznych. To pierwszy warunek, który mnie dotyczy. W większości przypadków łatwo jest to ocenić. Rozważ następujące funkcje JavaScript (jak pokazano w tym artykule ) Czysty: …
Naprawdę trudno mi zrozumieć różnicę między paradygmatami programowania proceduralnego i funkcjonalnego . Oto pierwsze dwa akapity z wpisu Wikipedii na temat programowania funkcjonalnego : W informatyce programowanie funkcjonalne jest paradygmatem programowania, który traktuje obliczenia jako ocenę funkcji matematycznych i unika danych stanu i zmiennych. Podkreśla zastosowanie funkcji, w przeciwieństwie do …
To jest kontynuacja odpowiedzi na moje poprzednie pytanie. Załóżmy, że trzeba mapować każdy element a:Aod List[A]do b:Bz funkcji def f(a:A, leftNeighbors:List[A]): Bi generować List[B]. Oczywiście nie mogę po prostu zadzwonić mapna listę, ale mogę użyć suwaka listy . Zamek błyskawiczny to kursor do poruszania się po liście. Zapewnia dostęp do …
На этот вопрос есть ответы на Stack Overflow на русском : Декартово произведение нескольких массивов Jak zaimplementowałbyś iloczyn kartezjański wielu tablic w JavaScript? Jako przykład, cartesian([1, 2], [10, 20], [100, 200, 300]) powinien wrócić [ [1, 10, 100], [1, 10, 200], [1, 10, 300], [2, 10, 100], [2, 10, 200] …
W obecnym stanie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub ekspertyzą, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy, aby uzyskać …
Właśnie zacząłem z F #, który jest moim pierwszym językiem funkcjonalnym. Pracowałem prawie wyłącznie z językiem C # i bardzo się cieszę, jak F # prowadzi mnie do ponownego przemyślenia sposobu, w jaki piszę kod. Jeden aspekt, który uważam za nieco dezorientujący, to zmiana w procesie pisania kodu. Od lat …
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 Istnieje wiele funkcjonalnych idiomów: monady, aplikacje, strzałki itp. Są one udokumentowane w różnych artykułach, ale niestety …
Python ma wbudowaną funkcjęenumerate , która umożliwia uzyskanie iterowalnych (index, item)par. Czy ES6 ma odpowiednik dla tablicy? Co to jest? def elements_with_index(elements): modified_elements = [] for i, element in enumerate(elements): modified_elements.append("%d:%s" % (i, element)) return modified_elements print(elements_with_index(["a","b"])) #['0:a', '1:b'] Odpowiednik ES6 bez enumerate: function elements_with_index(elements){ return elements.map(element => elements.indexOf(element) + …
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 5 lat temu . Popraw to pytanie Języki funkcjonalne są dobre, ponieważ pozwalają uniknąć błędów, eliminując stan, ale także …
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.