Pytania otagowane jako functional-programming

6
Co nowego w czysto funkcjonalnych strukturach danych od czasu Okasaki?
Od czasu książki Chrisa Okasakiego z 1998 r. „Czysto funkcjonalne struktury danych”, nie widziałem zbyt wielu nowych ekscytujących czysto funkcjonalnych struktur danych; Mogę wymienić tylko kilka: IntMap (również wynaleziony przez Okasaki w 1998 r., Ale nieobecny w tej książce) Drzewa palcowe (i ich uogólnienie na monoidy) Istnieje również kilka interesujących …


2
Wyjaśnienie funktora aplikacyjnego w kategoriach kategorycznych - funktory monoidalne
Chciałbym zrozumieć Applicativew kategoriach teorii kategorii. Dokumentacja dla Applicativetwierdzi, że jest to silny funktor LAX monoidal . Po pierwsze, strona Wikipedii o funktorach monoidalnych mówi, że funktor monoidalny jest luźny lub silny . Wydaje mi się więc, że jedno ze źródeł jest niepoprawne lub używają terminów inaczej. Czy ktoś może …




5
Czy istnieją adnotowane formalne systemy weryfikacji dla czysto funkcjonalnych języków programowania?
ACSL (Ansi C Specification Language), to specyfikacja kodu C, opatrzona specjalnymi komentarzami, która pozwala na formalną weryfikację kodu C. Nie przyjrzałem się temu, ale wyobrażam sobie, że metody formalne stosowane w weryfikatorach ACSL byłyby podobne do Hoare Logic. Jednak w przypadku czysto funkcjonalnych języków, takich jak Haskell, nie mogę sobie …

1
Jakie są praktyczne problemy z typami skrzyżowań i złączy?
Projektuję prosty funkcjonalny język programowania o typie statycznym jako sposób uczenia się. Wygląda na to, że system typów, który do tej pory wdrożyłem, może (przy odrobinie dodatkowej pracy) zawierać typy skrzyżowań i złączy, np. Możesz mieć: <Union String Integer> <Union Integer Foo> Przecięcie dwóch powyższych typów byłoby równiną Integer Połączenie …

2
Czy można zaniedbać koszt GC, analizując czas działania najgorszych struktur danych określonych w zbędnym języku programowania?
Właśnie zdałem sobie sprawę, że zakładam, że odpowiedź na moje pytanie brzmi „tak”, ale nie mam dobrego powodu. Wyobrażam sobie, że może istnieje śmieciarz, który prawdopodobnie wprowadza tylko spowolnienie w najgorszym przypadku. Czy istnieje ostateczne odniesienie, które mogę zacytować? W moim przypadku pracuję nad czysto funkcjonalną strukturą danych i używam …

2
Jakie są granice całkowitego programowania funkcjonalnego?
Jakie są ograniczenia całkowitego programowania funkcjonalnego? Nie jest to kompletna metoda Turinga, ale nadal obsługuje dużą część możliwych programów. Czy istnieją ważne konstrukcje, które można napisać w języku kompletnym Turinga, ale nie w języku funkcjonalnym? I czy słuszne jest stwierdzenie, że programy napisane w całkowicie funkcjonalnych językach mogą być całkowicie …

2
Teoria kategorii, złożoność obliczeniowa i połączenia kombinatoryczne?
Próbowałem przeczytać „ Perły projektowania algorytmu funkcjonalnego ”, a następnie „ Algebra programowania ”, i istnieje oczywista zgodność między rekurencyjnie (i wielomianowo) zdefiniowanymi typami danych i obiektami kombinatorycznymi, mającymi tę samą definicję rekurencyjną, a następnie prowadzącą do tych samych formalnych szeregów mocy (lub funkcji generujących), jak pokazano we wstępach do …

4
Czym różnią się języki rozkazujące od języków funkcjonalnych?
Czytam Simona Peytona Jonesa Implementation of Functional Programming Languages i jest jedno zdanie, które mnie trochę zaskoczyło (na stronie 39): W znacznie większym stopniu niż w przypadku języków imperatywnych języki funkcjonalne są w dużej mierze odmianami składniowymi, przy stosunkowo niewielkich różnicach semantycznych. Teraz zostało to napisane w 1987 roku i …

3
Czytnik, pisarz monady
Niech będzie CCC . Niech być bifunctor produkt na . Ponieważ Cat to CCC, możemy curry :( × ) C ( × )CCC(×)(×)(\times)CCC(×)(×)(\times) curry(×):C→(C⇒C)curry(×):C→(C⇒C)curry (\times) : C \rightarrow(C \Rightarrow C) curry(×)A=λB.A×Bcurry(×)A=λB.A×Bcurry (\times) A = \lambda B. A \times B Kategoria funktora ma zwykłą strukturę monoidalną. C⇒CC⇒CC \Rightarrow C Monoid w …

3
Ładowanie struktury palca
Po dłuższej pracy z 2-3 palcami jestem pod wrażeniem ich szybkości w większości operacji. Jednak jedynym problemem, na jaki natknąłem się, jest duży koszt związany z początkowym utworzeniem dużego drzewa palców. Ponieważ budowanie jest definiowane jako sekwencja operacji konkatenacji, kończy się budowanie dużej liczby niepotrzebnych struktur drzewa palcowego. Ze względu …

2
(Jak) Czy możemy odkryć / przeanalizować problemy NP przy braku modelu obliczeniowego Turinga?
Z czysto abstrakcyjnego punktu widzenia rozumowania matematycznego / obliczeniowego (jak) można nawet odkryć lub wyjaśnić problemy takie jak 3-SAT, suma częściowa, podróżny sprzedawca itp.,? Czy bylibyśmy w stanie w jakikolwiek sensowny sposób uzasadnić je tylko z funkcjonalnego punktu widzenia? Czy to w ogóle możliwe? Zastanawiam się nad tym pytaniem wyłącznie …

2
Jaka trwała struktura danych dla zestawu częściowo uporządkowanych elementów?
Muszę przechowywać zestawy elementów typu a. Typ a jest częściowo uporządkowany, więc porównanie i może zwrócić mniejsze, większe, równe lub nieporównywalne.a 2za1za1a_1za2)za2)a_2 Jednym z problemów z tablicami skrótów jest to, że dwa równe elementy mogą być reprezentowane w różny sposób i nie mam dostępu do funkcji haszującej zgodnej z równością. …


1
Dlaczego funkcjonalne języki programowania wymagają wyrzucania elementów bezużytecznych?
Co powstrzymuje ghc przed przetłumaczeniem Haskell na konkatenatywny język programowania, taki jak logika kombinacyjna, a następnie po prostu użycie alokacji stosu do wszystkiego? Według Wikipedii tłumaczenie z rachunku lambda na logikę kombinacyjną jest banalne, a także konkatenatywne języki programowania mogą polegać wyłącznie na stosie przy alokacji pamięci. Czy to możliwe, …

1
Matematyczny (kategoryczny) opis klas typów
Język funkcjonalny można postrzegać jako kategorię, w której jego obiektami są typy, a między nimi funkcjonują morfizmy. Jak pasują klasy w tym modelu? Zakładam, że powinniśmy brać pod uwagę tylko te implementacje, które spełniają ograniczenie większości klas typów, ale które nie są wyrażone w języku Haskell. Na przykład powinniśmy brać …


3
Asocjacyjne mieszanie skrótów
Rozważ mało pojedynczo połączoną listę w czysto funkcjonalnym otoczeniu. Jego pochwały śpiewano ze szczytów górskich i nadal będą śpiewane. Zajmę się tutaj jedną z wielu jego mocnych stron i pytaniem, w jaki sposób można ją rozszerzyć na szerszą klasę czysto funkcjonalnych sekwencji opartych na drzewach. Problem jest następujący: Chcesz przetestować …

2
Listy różnic w programowaniu funkcjonalnym
Pytanie Co nowego w czysto funkcjonalnych strukturach danych od czasu Okasaki? oraz epicka odpowiedź jbapple, wspomniana przy użyciu list różnic w programowaniu funkcjonalnym (w przeciwieństwie do programowania logicznego), co mnie ostatnio interesowało. To doprowadziło mnie do znalezienia implementacji listy różnic dla Haskell. Mam dwa pytania (wybacz mi / popraw, jeśli …



1
Co sprawia, że ​​język (i jego system typów) jest w stanie udowodnić twierdzenia o swoich terminach?
Niedawno próbowałem zaimplementować Cedille-Core Aarona , minimalistyczny język programowania zdolny do udowodnienia twierdzeń matematycznych na temat własnych terminów. Udowodniłem również indukcję dla typów danych zakodowanych na λ, co wyjaśniło, dlaczego jego rozszerzenia byłyby konieczne. Nie mówiąc już o tym, wciąż zastanawiam się, skąd pochodzą te rozszerzenia. Dlaczego są tacy, jacy …

2
Jakie są relacje między Alternative, MonadPlus (LeftCatch) i MonadPlus (LeftDistributive)?
Dalsze działania Jaki jest przykład Monady, która jest alternatywą, ale nie MonadPlus? : Załóżmy, że to monada. Jakie są stosunki betweem m bycia alternatywą , a MonadPlusCatch i MonadPlusDistr ? mmmmmmDla każdej z sześciu możliwych par chciałbym mieć albo dowód, że jedna implikuje drugą, lub kontrprzykład, że tak nie jest. …

2
Proste zrównoważone drzewa z concat O (1)?
W czysto funkcjonalnych najgorszych przypadkach sortowanych list o stałym czasie, Brodal i in. prezentuj czysto funkcjonalne zrównoważone drzewa z konkatenatem O (1) i wstawiaj, usuwaj i znajduj O (lg n). Struktura danych jest nieco skomplikowana. Czy istnieje prostsze zrównoważone drzewo wyszukiwania z konkatenacją O (1), funkcjonalne czy nie?


3
Jakie algorytmy można wyrazić za pomocą całkowitego języka funkcjonalnego z operatorami równoległych danych?
Wyobraź sobie funkcjonalny język programowania, którego jedynymi typami danych są skalary numeryczne i dowolne zagnieżdżenia tablic. W języku nie ma żadnych możliwości nieograniczonej iteracji, dlatego następujące elementy są niedozwolone: wyraźne pętle (i tak niewiele zużyć bez skutków ubocznych) rekurencja arbitralne funkcje pierwszej klasy (bez kombinatora y) Język ma jednak: funkcje …

1
Jak kodujesz abstrakcyjny algorytm Lampinga za pomocą kombinacji interakcji?
Kombinatory interakcji były wcześniej proponowane jako cel kompilacji dla rachunku λ. Ten papier implementuje pełny rachunek λ. Wiadomo również, że możliwe jest zoptymalizowanie kodowania sieci interakcji rachunku λ dla podzbioru terminów λ, który jest typowy dla EAL. W tym artykule zaimplementowano ten podzbiór rachunku λ, tłumacząc wyrażenia λ typu EAL …

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.