Czy ktoś może skierować mnie do recenzowanych artykułów badających zalety lub wady pisania kodu w funkcjonalnym stylu? Czy są artykuły omawiające zastosowania Lambda Calculus w takich dziedzinach, jak uczenie maszynowe, projektowanie języków
Czy ktoś może skierować mnie do recenzowanych artykułów badających zalety lub wady pisania kodu w funkcjonalnym stylu? Czy są artykuły omawiające zastosowania Lambda Calculus w takich dziedzinach, jak uczenie maszynowe, projektowanie języków
Procesory są w pewnym stopniu zaprojektowane z myślą o oprogramowaniu, które ludzie będą dla niego pisać, w sposób dorozumiany lub jawny. Wydaje mi się, że jeśli spojrzysz na projekt architektury zestawów instrukcji, są one bardzo „imperatywne”, w tym sensie, że każda instrukcja koduje polecenie...
Programowanie funkcjonalne ma bardzo elegancki rachunek lambda i jego warianty jako teorię kopii zapasowej. Czy istnieje coś takiego dla OOP? Czym jest abstrakcja dla modelu
Zadałem podobne pytanie na cstheory.SE . Zgodnie z tą odpowiedzią na Stackoverflow istnieje algorytm, który w nieliniowym czystym funkcjonalnym języku programowania ma złożoność , podczas gdy tym samym algorytmem w programowaniu imperatywnym jest Ω ( n ) . Dodanie lenistwa do języka FP...
Czy są jakieś zmiany, które można wprowadzić w procesorach, aby działały lepiej w przypadku równoczesnych środowisk uruchomieniowych, takich jak Rust? Na przykład, czy są jakieś zmiany w implementacjach przewidywania gałęzi lub rozmiarach pamięci podręcznej, które pomogłyby w jednoczesnych...
Myślę, że rozumiem, w jaki sposób wylesianie zużywa i tworzy listę w tym samym czasie (z funkcji składania i rozwijania - zobacz tę dobrą odpowiedź na CodeReview tutaj ), ale kiedy porównałem to z wpisem wikipedia o technice , o której mówił „usuwanie” drzewa ”z programu. Rozumiem, w jaki sposób...
Na wiki haskell znajduje się następujący przykład warunkowego użycia monady IO (patrz tutaj) . when :: Bool -> IO () -> IO () when condition action world = if condition then action world else ((), world) Zauważ, że w tym przykładzie IO aprzyjęto definicję, RealWorld -> (a,...
Szukam trwałej struktury danych podobnej do tablicy (ale niezmiennej), umożliwiającej szybkie indeksowanie, dołączanie, dodawanie i iterację (dobra lokalizacja). Clojure zapewnia trwały Vector, ale służy tylko do szybkiego dołączania. Vector Scali ma efektywnie dołączanie i dodawanie w czasie...
Załóżmy, że ktoś chce argumentować o właściwościach kodu wykraczających poza takie rzeczy, jak totalność i czystość funkcjonalna - dba się również o zużycie pamięci lub złożoność algorytmiczną funkcji. Czy można tego dokonać za pomocą zależnych systemów pisania i...
Pracuję nad językiem genealogicznym ML opartym na wyrażeniach, więc oczywiście wymaga wnioskowania typu> :) Teraz próbuję rozszerzyć oparte na ograniczeniach rozwiązanie problemu wnioskowania typów, oparte na prostej implementacji w EOPL (Friedman i Wand), ale są to eleganckie algebraiczne typy...
W komentarzu do Nauka F #: Jakie książki w innych językach programowania można przetłumaczyć na F #, aby nauczyć się funkcjonalnych koncepcji? Makarius stwierdził: Zauważ, że podejście „CPS” wyrządziło wielką szkodę wydajności w SML / NJ. Jego model oceny fizycznej narusza zbyt wiele założeń...
Zwrócono mi uwagę, że koszt wnioskowania o typ w funkcjonalnym języku, takim jak OCaml, może być bardzo wysoki. Twierdzenie jest takie, że istnieje ciąg wyrażeń taki, że dla każdego wyrażenia długość odpowiedniego typu jest wykładnicza względem długości wyrażenia. Wymyśliłem sekwencję poniżej....
Typy własne są rozszerzeniem Rachunku konstrukcji [1], które pozwalają językowi wyrażać algebraiczne typy danych zakodowane za pomocą kodowania Scott. Kodowanie Scott daje możliwość dopasowania do wzorca O(1), który jest jednym z głównych czynników motywujących do włączenia definicji indukcyjnych...
Co to są funkcje anonimowe (lambda)? Jaka jest formalna definicja anonimowej funkcji w funkcjonalnym języku programowania? Mówiąc najprościej, kiedy programuję w schemacie / lisp, powiedziałbym, że funkcja anonimowa (lambda) jest funkcją niezwiązaną z identyfikatorem. Czy to wszystko, co możesz...
Nie znam poprawnej terminologii do zadawania tego pytania, dlatego opiszę to wieloma słowami, proszę o wyrozumiałość. Tło , więc jesteśmy na tej samej stronie: programy często zawierają pamięci podręczne - kompromis czas / pamięć. Częstym błędem programisty jest zapomnienie o aktualizacji pamięci...
Chcę przedstawić dowody dla części programu Haskell, który piszę w ramach mojej pracy magisterskiej. Jednak jak dotąd nie udało mi się znaleźć dobrej pracy referencyjnej. Książka wprowadzająca Grahama Huttona Programowanie w Haskell ( Google Books ) - którą czytam podczas nauki Haskell - porusza...
Istnieje więc algorytm konwertujący warunki rachunku lambda na logikę kombinatoryczną za pomocą kombinatorów SK. Produkuje rzeczy, które eksplodują wielkością. Chciałbym dowiedzieć się więcej o tej eksplozji w rozmiarze. Nie mogę jednak wymyślić lepszego algorytmu. Słyszałem, że języki funkcjonalne...
Chociaż pracuję jako programista w swoim codziennym życiu i używam wszystkich modnych języków (Python, Java, C itp.), Nadal nie mam jasnego obrazu tego, czym jest programowanie funkcjonalne. Z tego, co przeczytałem, jedną właściwością języków funkcjonalnych jest to, że struktury danych są...
Chcę wiedzieć, na ile system typów w języku programowania może być korzystny. Na przykład wiem, że w języku programowania o typie zależnym możemy stworzyć Vectorklasę uwzględniającą rozmiar wektora w podpisie typu. To jest jak faktyczny przykład. Możemy również napisać funkcję appendprzy użyciu...