Pytania otagowane jako functional-programming

Programowanie funkcjonalne jest paradygmatem, który próbuje rozwiązać problemy obliczeniowe poprzez łańcuchową ocenę funkcji, których wynik zależy od ich danych wejściowych, a nie od stanu programu. W tym stylu programowania skutki uboczne i zmienne dane są przestarzałe i zwykle ściśle izolowane.

18
Co byś zrobił, gdyby Twój klient nie wymagał programowania obiektowego?
Piszę program do symulacji aktywności mrówek w siatce (PDF). Mrówka może się przemieszczać, podnosić i upuszczać. Problem polega na tym, że działanie mrówek i położenia każdej mrówki można łatwo śledzić za pomocą atrybutów klasy (i możemy łatwo stworzyć wiele instancji takich mrówek), mój klient powiedział, że ponieważ ma doświadczenie w …

5
Programowanie asynchroniczne w językach funkcjonalnych
Jestem głównie programistą C / C ++, co oznacza, że ​​większość mojego doświadczenia dotyczy paradygmatów proceduralnych i obiektowych. Jednak, jak wielu programistów C ++ zdaje sobie sprawę, C ++ z biegiem lat przesunął nacisk na styl funkcjonalny, którego kulminacją było wreszcie dodanie lambdas i zamknięć w C ++ 0x. Niezależnie …



10
Biorąc pod uwagę stado koni, jak znaleźć średnią długość rogu wszystkich jednorożców?
Powyższe pytanie jest abstrakcyjnym przykładem typowego problemu, który napotykam w starszym kodzie, a ściślej - problemów wynikających z poprzednich prób rozwiązania tego problemu. Mogę wymyślić co najmniej jedną metodę platformy .NET, która ma rozwiązać ten problem, podobnie jak Enumerable.OfType<T>metoda. Ale fakt, że ostatecznie kończysz przesłuchiwanie typu obiektu w czasie wykonywania, …

8
Dlaczego koncepcja leniwej oceny jest przydatna?
Wydaje się, że leniwa ocena wyrażeń może spowodować utratę kontroli przez programistę nad kolejnością wykonywania kodu. Mam problem ze zrozumieniem, dlaczego programista może to zaakceptować. Jak można wykorzystać ten paradygmat do budowy przewidywalnego oprogramowania, które działa zgodnie z przeznaczeniem, skoro nie mamy gwarancji, kiedy i gdzie wyrażenie zostanie ocenione?

10
Jak zwolennicy programowania funkcjonalnego odpowiedzieliby na to stwierdzenie w Code Complete?
Na stronie 839 drugiego wydania Steve McConnell omawia wszystkie sposoby, w jakie programiści mogą „pokonać złożoność” w dużych programach. Jego wskazówki kończą się tym stwierdzeniem: „Programowanie obiektowe zapewnia poziom abstrakcji, który dotyczy jednocześnie algorytmów i danych , rodzaj abstrakcji, której nie zapewnił sam rozkład funkcjonalny”. W połączeniu z konkluzją, że …

3
Haskell vs Erlang dla usług sieciowych
Chcę rozpocząć eksperymentalny projekt z użyciem funkcjonalnego języka i staram się zdecydować między Erlangiem a Haskellem, i oba mają pewne punkty, które naprawdę lubię. Podoba mi się silny system pisma Haskell i jego czystość. Mam wrażenie, że dzięki temu łatwiej będzie napisać naprawdę niezawodny kod. I myślę, że moc Haskella …

5
Czy programowanie w filozofii UNIX jest takie samo jak programowanie funkcjonalne?
Środowisko programistyczne UNIX (tekst klasyczny) stwierdza, że ​​podejście UNIX do programowania polega na tworzeniu małych, dobrze zdefiniowanych narzędzi, które można łączyć w celu rozwiązywania bardziej złożonych problemów. Podczas nauki C i powłoki Bash odkryłem, że jest to potężna koncepcja, którą można wykorzystać do radzenia sobie z wieloma problemami programistycznymi. Używając …

3
Różne sposoby oglądania monady
Podczas nauki języka Haskell spotkałem się z wieloma samouczkami próbującymi wyjaśnić, czym są monady i dlaczego monady są ważne w Haskell. Każda z nich używała analogii, więc łatwiej byłoby uchwycić sens. Ostatecznie mam 3 różne poglądy na to, czym jest monada: Widok 1: Monada jako etykieta Czasami myślę, że monada …




5
Czy łapanie / rzucanie wyjątków sprawia, że ​​metoda, która w innym przypadku jest czysta, jest nieczysta?
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): …

7
Czy programowanie funkcjonalne ignoruje korzyści płynące z „O kryteriach, które należy zastosować przy rozkładaniu systemów na moduły” (ukrywanie danych)?
Jest klasyczny artykuł zatytułowany „Kryteria do zastosowania w rozkładaniu systemów na moduły”, który właśnie przeczytałem po raz pierwszy. Ma to dla mnie idealny sens i jest prawdopodobnie jednym z tych artykułów, na których oparto OOP. Wniosek: Na podstawie tych przykładów próbowaliśmy wykazać, że prawie zawsze niewłaściwe jest rozpoczęcie rozkładu systemu …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.