haskell

Zrozumienie STG

Projekt GHC opiera się na czymś o nazwie STG, co oznacza "bezrękawnik, bez znaczników g-machine". Teraz G-machine jest najwy ... u, że węzły nie są oznaczone stanem oceny. Czy ktoś może wyjaśnić, która (jeśli w ogóle) z tych interpretacji jest poprawna?

Haskell: jak mapować krotkę?

W Haskell, mogę łatwo mapować listę: map (\x -> 2*x) [1,2] Daje mi [2,4]. Czy jest jakaś funkcja "mapTuple", która by tak działała? mapTuple (\x -> 2*x) (1,2) Z wynikiem (2,4).

Jak działają wyjątki w Haskell?

W GHCi: Prelude> error (error "") *** Exception: Prelude> (error . error) "" *** Exception: *** Exception: Dlaczego pierwszy z nich nie jest zagnieżdżonym wyjątkiem?

Haskell: dlaczego konwencja nazwać funkcję pomocniczą "go"?

Widzę go dużo czytając Materiał lub źródło Haskella, ale nigdy nie czułem się z tym komfortowo - (myślę, że ma to negatywne k ... nia acc i step podczas pisania fałd. Skąd bierze się konwencja pisania go? Najważniejsze, co dokładnie ma oznaczać nazwa go?

Jak drukować litery całkowite w binarnym lub szesnastkowym w haskell?

Jak drukować litery całkowite w binarnym lub szesnastkowym w haskell? printBinary 5 => "0101" printHex 5 => "05" Kt ... żyć. > :t showIntAtBase showIntAtBase :: (Integral a) => a -> (Int -> Char) -> a -> String -> String

Zestawy, funktory i korektory

Ostatnio w pracy pojawiła się dyskusja na temat zestawów, które w Scali obsługują metodę zip i jak może to prowadzić do błędó ... amania prawa Functora? Jakie powinny być prawa dla Eq i jak współdziałają z prawami dla Functor I instancji Set w szczególna?

Y Combinator w Haskell

Czy jest możliwe zapisanie Y Combinator W Haskell? Wygląda na to, że ma nieskończenie rekurencyjny Typ. Y :: f -> b - ... ) ((λ (x) (f (x x))) (λ (x) (f (x x))))) Czyli tylko eta dla wersji leniwej. Jeśli wolisz krótkie nazwy zmiennych.

Generowanie liczb Fibonacciego w Haskell?

W Haskell, Jak mogę wygenerować liczby Fibonacciego na podstawie własności, że N-ta liczba Fibonacciego jest równa (n-2)tej l ... ym napisać kod Haskella, który działa obliczając rzeczywistą definicję, a nie robiąc coś naprawdę dziwnego z funkcjami listy?

W Haskell wykonujących `and ' I ' or ' dla funkcji boolean

Właśnie napisałem następujące dwie funkcje: fand :: (a -> Bool) -> (a -> Bool) -> a -> Bool fand f1 f2 x = ( ... podobne, że istnieje czysty sposób, aby to zrobić za pomocą istniejących funkcji. Jaki był "właściwy" sposób, aby to zrobić?

Czysto funkcjonalne struktury danych dla edytorów tekstu

Jakie byłyby dobre czysto funkcjonalne struktury danych dla edytorów tekstu? Chcę być w stanie wstawiać pojedyncze znaki do t ... łatwością cofać zmiany. Czy powinienem użyć listy ciągów i ponownie użyć linii, które nie zmieniają się z wersji na wersję?

Jak debugować Kod Haskell?

Mam problem. Napisałem duży program Haskell i zawsze działa z małym wkładem. Teraz, kiedy chcę go przetestować i wygenerować ... zy. Co mogę zrobić, aby dowiedzieć się więcej lub uzyskać lepszy wynik błędu, aby uzyskać linię kodu, w której to się dzieje?

Wybór parsera Haskell

Istnieje wiele implementacji parsera open source dostępnych dla nas w Haskell. Parsec wydaje się być standardem dla parsow ... ujesz się przy wyborze implementacji parsera? Czy dowiedziałeś się czegoś ciekawego o mocnych lub słabych stronach bibliotek?

Haskell Graphics Library, która działa w GHCi na MacOS X

Czy istnieje Biblioteka graficzna Haskell lub powiązanie z biblioteką zewnętrzną, która spełnia następujące wymagania: Mo ... (OpenGL) - nie można uruchomić main dwa razy, coś o "niepowodzeniu, ponieważ nie można zainstalować obsługi zdarzeń myszy".

Podejścia dualności w programowaniu funkcjonalnym

Chciałbym wiedzieć, jaki rodzajprawdziwego życia problemów można rozwiązać za pomocą "metod dualności" w programowaniu funkc ... , że f' nie znikną). Na końcu obliczane są tylko niezbędne terminy szeregów pośrednich, aby uzyskać wartość danego wyrażenia.

Polecenia Wielowierszowe w GHCi

Mam problem z wpisaniem komend wielowierszowych w ghci. Poniższy 2-liniowy kod działa z pliku: addTwo :: Int -> Int -> ... ponieważ jest to po prostu dołączanie linii do jednej linii, co nie powinno mieć miejsca. Używam WinGHCi, wersja 2011.2.0.1

Profilowanie buduje ze stosu

Jak mam powiedzieć stack aby zbudować mój plik wykonywalny i wszystkie jego zależności z -prof? Samo dodanie go do {[2] } w ... pliku .cabal nie wystarczy, ponieważ próbuje zbudować plik wykonywalny tylko z włączonym profilowaniem, co się nie powiedzie.

Czym jest monada W FP, w kategoriach kategorycznych?

Za każdym razem, kiedy ktoś obiecuje "wyjaśnić monady", moje zainteresowanie budzi tylko frustracja, kiedy rzekome" Wyjaśnien ... pcja mówi więcej niż sto nieśmiałych przykładów. Haskell byłby dobry jako język do demonstracji, chociaż nie jestem wybredny.

Dlaczego powinienem używać funktorów aplikacyjnych w programowaniu funkcyjnym?

Jestem nowy w Haskell i czytam o funktorach i funkcjach aplikacyjnych. Ok, rozumiem funktory i jak mogę ich używać, ale nie r ... czne i jak mogę ich używać w Haskell. Czy możesz mi wyjaśnić prostym przykładem, dlaczego potrzebuję funktorów aplikacyjnych?

Type checker pozwala na bardzo błędną wymianę typu, a program nadal kompiluje

Próbując debugować problem w moim programie (2 okręgi o jednakowym promieniu są rysowane do różnych rozmiarów za pomocą połys ... dwa okręgi o rzekomo równym promieniu są rysowane do różnych rozmiarów, było to, że jeden z promieni był rzeczywiście ujemny.

Leniwa Ocena i złożoność czasowa

Rozglądałem się po stackoverflow nietrywialna leniwa Ocena , która doprowadziła mnie do prezentacji Keegana Mcallistera: Po ... ego, takie jak sortowanie liniowe. Czy leniwa ocena odgrywa tu tajemniczą rolę? Jeśli tak, to jakie jest za tym Wyjaśnienie?