Próbuję zapoznać się z różnymi rodzajami języków, aby zrozumieć obszary, w których każdy z nich jest wyjątkowo dobry. Do tej pory zajmowałem się językiem C - językiem proceduralnym, C ++ i java - obiektowymi językami zorientowanymi obiektowo oraz groovy - dynamicznym językiem zorientowanym obiektowo.
Prawdopodobnie każdy język programowania został uruchomiony w celu zaspokojenia potrzeb. I zakładam, że każdy język jest wyjątkowo dobry przynajmniej w jednej rzeczy, dzięki czemu staje się standardem w określonym obszarze lub dziedzinie. Podobnie jak C, C ++ stały się standardem w obszarach takich jak przeglądarka lub tworzenie gier. Python w świecie Linuxa ze względu na łatwą obsługę skryptów, Java w świecie przedsiębiorstw itp.
Teraz jestem zainteresowany nauką funkcjonalnego języka programowania, takiego jak Clojure lub Lisp. Gdzie zatem funkcjonują języki programowania w rzeczywistych scenariuszach? Nie sądzę, żeby ktoś używał Clojure lub Lisp do tworzenia aplikacji lub interfejsów użytkownika. Więc na jakie projekty powinienem sobie pozwolić po przejściu podstawowych samouczków i zasobów edukacyjnych, aby uzyskać krótkie zrozumienie dotyczące wdrażania programowania funkcjonalnego? I czy zdecydowanie polecasz jeden język w konkretnym, na przykład clojure?
źródło
Odpowiedzi:
Mówisz, że programowanie funkcjonalne w świecie rzeczywistym, tak myślę, Erlang.
http://www.erlang.org/
źródło
Istnieje świetny cykl wykładów na temat programowania funkcjonalnego Uniwersytetu Stanforda, który można sprawdzić na YouTube.
Radziłbym raczej przyjrzeć się Programowi niż LISP. Schemat to zmodyfikowana wersja Lisp z dalszymi ulepszeniami. Program jest głównie wykorzystywany do celów akademickich i szkoleniowych. Jest to świetny język, jeśli chcesz prowadzić badania w dziedzinie teoretycznych obliczeń komputerowych.
Aplikacje :
Google App Inventor na Androida korzysta ze schematu, w którym Kawa jest używana do kompilacji kodu schematu do kodów bajtowych dla wirtualnej maszyny Java działającej na urządzeniach z Androidem. Elk Scheme jest używany przez Synopsys jako język skryptowy dla narzędzi technologicznych CAD (TCAD).
FYI: Wykorzystanie programu
źródło
Bryan O'Sullivan, założyciel mailrank.com (który został przejęty przez Facebook), zbudował całą stronę serwerową tego oprogramowania w Haskell. On przedstawiony na ten temat w Strange Loop 2011, wideo i slajdy są dostępne w Internecie.
Ten sam facet napisał książkę pod tytułem Real World Haskell . Kilka osób wspomniało o samouczkach dotyczących programowania. Ten może być całkiem odpowiedni do twoich zainteresowań (podoba mi się również sugestia Erlanga).
źródło
Wiem od przyjaciół z branży finansowej, że ilościowa firma handlowa Jane Street wykorzystuje OCaml do wdrażania swoich strategii handlowych. Mają stronę, na której mówią o tym, wraz z linkami do rozmów na ten temat.
źródło
Oto lista historii sukcesu Common Lisp:
http://wiki.alu.org/Industry%20Application
http://www.franz.com/success/
http://www.lispworks.com/success-stories/index.html
Chociaż Common Lisp jest tylko częściowo funkcjonalny (obsługuje również OOP i proceduralny, a także wszystko, co chcesz wdrożyć samodzielnie lub z biblioteką), jest to bardzo pragmatyczny język i niezwykle potężny w rękach kompetentnego programisty. Używam go do pisania aplikacji internetowych przy użyciu doskonałego frameworka RESTAS .
A komercyjny projekt Pythona, nad którym teraz pracuję, ostatecznie zostanie uzupełniony usługami napisanymi w lisp (RESTAS, jak sugeruje jego nazwa, jest doskonały dla usług RESTful).
źródło
Sugerowałbym nurkowanie w kompilatorach (zarówno w językach ogólnego przeznaczenia, jak i DSL) - tutaj programowanie funkcjonalne jest najlepsze. Będzie wiele ciekawych i przydatnych rzeczy do odkrycia, od ADT i dopasowania wzorca po jednej stronie spektrum po makra Lisp po drugiej stronie.
źródło
Możesz rzucić okiem na Hume'a .
Na stronie The Hume Programming Language :
Ze strony Wikipedii Hume :
źródło