Pytania otagowane jako functional-programming

Programowanie funkcjonalne jest paradygmatem programowania, który wykorzystuje funkcje głównie jako środki do tworzenia abstrakcji i wyrażania obliczeń składających się na program komputerowy.

4
Dlaczego ważne jest, aby funkcje były anonimowe w rachunku lambda?
Oglądałem wykład Jima Weiricha zatytułowany „ Przygody w programowaniu funkcjonalnym ”. W tym wykładzie wprowadza pojęcie kombinatorów Y, które zasadniczo znajduje punkt stały dla funkcji wyższego rzędu. Jedną z motywów, jak wspomina, jest możliwość wyrażenia funkcji rekurencyjnych za pomocą rachunku lambda, tak aby teoria Kościoła (wszystko, co można skutecznie obliczyć, …

3
Funkcja ML typu „a ->” b
Nasz profesor poprosił nas o przemyślenie funkcji w OCaml, która ma ten typ 'a -> 'b tj. funkcja jednego argumentu, który może być czymkolwiek, i który może zwrócić coś innego. Myślałem o użyciu raisefunkcji, która ignoruje jej argument: let f x = raise Exit Ale profesor powiedział, że istnieje rozwiązanie, …

3
Jak zrobić język homoiconic
Zgodnie z tym artykułem następujący wiersz kodu Lisp wypisuje „Hello world” na standardowe wyjście. (format t "hello, world") Lisp, który jest językiem homoiconic , może traktować kod jako dane w następujący sposób: Teraz wyobraź sobie, że napisaliśmy następujące makro: (defmacro backwards (expr) (reverse expr)) wstecz to nazwa makra, która przyjmuje …

3
Studiowanie teorii języka programowania
Ostatnio bardzo się zainteresowałem zrozumieniem i sprawdzeniem aspektów (funkcjonalnych) języków programowania. Jednak gdy zagłębiam się głębiej, rzeczy takie jak rachunek , teoria kategorii i semantyka denotacyjna są nieco trudne do odczytania bez odpowiedniego wyjaśnienia.λλ\lambda Czytam SICP (całkiem pouczającą książkę), ale chcę zagłębić się w teorię programowania funkcjonalnego. Czy są jakieś …


3
Czym różni się procesor zaprojektowany wyłącznie do programowania funkcjonalnego?
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 stylu imperatywnego. Wydaje mi się również, …



2
Czy funkcje wyższego rzędu zapewniają większą moc programowaniu funkcjonalnemu?
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 spowodowałoby, że algorytm Ω ( n ) …

2
Czy architektury procesorów są tendencyjne w stosunku do proceduralnych środowisk wykonawczych?
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 uruchomieniach? Mam wrażenie, że obecne konstrukcje procesorów mogą być bardziej zoptymalizowane pod …



1
Czy właściwości, takie jak wykorzystanie pamięci przez funkcję, można wyrazić w języku zależnym od typu?
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 efektów?

2
Niezmienna (trwała) implementacja struktury danych podobna do tablicy z szybkim indeksowaniem, dołączaniem, dodawaniem, iteracją
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 stałym, ale nie mogę zrozumieć, jak jest zaimplementowany, ponieważ jest oparty na tej …

1
Podejście „CPS” wyrządziło wielką szkodę wydajności w SML / NJ; uzasadnienie pożądane
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ń wbudowanych w sprzęt. Jeśli weźmiesz duże …

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.