Haskell to funkcjonalny język programowania z silnym typowaniem statycznym, leniwą oceną, szeroką obsługą równoległości i współbieżności oraz unikalnymi możliwościami abstrakcyjnymi.
Mam problemy ze skonfigurowaniem GHC do specjalizacji funkcji z ograniczeniem klasy. Mam minimalny przykład mój problem tutaj: Foo.hs i Main.hs . Te dwa pliki są kompilowane (GHC 7.6.2 ghc -O3 Main) i uruchamiane. UWAGA: Foo.hs jest naprawdę okrojona. Jeśli chcesz zobaczyć, dlatego też konieczne jest ograniczenie, można zobaczyć trochę więcej …
Po pierwsze, Real World Haskell , który czytam, mówi, żeby nigdy nie używać foldli zamiast tego używać foldl'. Więc ufam temu. Ale jestem zamglona, gdy w użyciu foldrw porównaniu foldl'. Chociaż widzę strukturę ich działania inaczej ułożoną przede mną, jestem zbyt głupi, by zrozumieć, kiedy „co jest lepsze”. Wydaje mi …
Czy jest prosta odpowiedź: dlaczego GHC jest tak duży? OCaml: 2 MB Python: 15 MB SBCL: 9 MB OpenJRE - 26 MB GHC: 113 MB Nie interesuje się ewangelizacją: „Dlaczego nie powinienem przejmować się rozmiarem, jeśli Haskell jest właściwym narzędziem”; to jest kwestia techniczna.
Mam typy danych zdefiniowane jako: data ComitteeView = CommitteeView { committeeId :: CommitteeId , committeeMembers :: [Person] } data CommitteesView = CommitteesView { committeeView :: [CommitteeView] } Teraz, w obecnej formie, mam model Trwały zdefiniowany jako: Person name Text Committee name Text CommitteePerson personId PersonId committeeId CommitteeId Mogę łatwo utworzyć …
Próbuję użyć ghc-modwtyczki vim do sprawdzania typu / składni itp. Jednak odkryłem, że ghc-modzawsze używa pełnych ścieżek typów w komunikatach o błędach, na przykład: test.hs|71 col 13 error| Couldn't match type ‘Data.Text.Internal.Text’ || with ‘[GHC.Types.Char]’ || Expected type: containers-0.5.6.2:Data.Map.Base.Map || [GHC.Types.Char] || ([(integer-gmp-1.0.0.0:GHC.Integer.Type.Integer, || integer-gmp-1.0.0.0:GHC.Integer.Type.Integer)], || containers-0.5.6.2:Data.Set.Base.Set || integer-gmp-1.0.0.0:GHC.Integer.Type.Integer) || …
Próbuję dowiedzieć się, jak prawidłowo używać API OpenSSL.Session w kontekście współbieżnym Załóżmy na przykład, że chcę zaimplementować stunnel-style ssl-wrapper, spodziewałbym się , że będę miał następującą podstawową strukturę szkieletu, która implementuje naiwnośćfull-duplex tcp-port-forwarder: runProxy :: PortID -> AddrInfo -> IO () runProxy localPort@(PortNumber lpn) serverAddrInfo = do listener <- listenOn …
Mam problem z wprowadzaniem poleceń wielowierszowych w ghci. Poniższy dwuwierszowy kod działa z pliku: addTwo :: Int -> Int -> Int addTwo x y = x + y Ale kiedy wchodzę w ghci, pojawia się błąd: <interactive>:1:1: error: Variable not in scope: addTwo :: Int -> Int -> Int Próbowałem …
Nie rozumiem, co to jest „podnoszenie”. Czy powinienem najpierw zrozumieć monady, zanim zrozumiem, czym jest „winda”? (Ja też zupełnie nie znam monad :) A może ktoś może mi to wyjaśnić prostymi słowami?
Miałem nadzieję, że wykorzystam interpreter Haskell, hintaby móc pisać wtyczki w Haskell do wykorzystania w moim programie. Nie chcę wysyłać całej platformy Haskell dla moich plików wykonywalnych. Zwykle pliki wykonywalne Haskella są dość niezależne. Na przykład usunięcie PATHpliku nie powoduje problemu: $ PATH=. Hello Hello world Jednak prosty program testowy …
Wszelkie wskazówki, jak skutecznie rozwiązać następującą funkcję w Haskellu dla dużych liczb (n > 108) f(n) = max(n, f(n/2) + f(n/3) + f(n/4)) Widziałem przykłady zapamiętywania w Haskellu w celu rozwiązania liczb Fibonacciego, które obejmowały (leniwie) obliczanie wszystkich liczb Fibonacciego do wymaganego n. Ale w tym przypadku dla danego n …
Liczby kościelne to kodowanie liczb naturalnych jako funkcji. (\ f x → (f x)) -- church number 1 (\ f x → (f (f (f x)))) -- church number 3 (\ f x → (f (f (f (f x))))) -- church number 4 Zgrabnie, możesz potęgować 2 liczby kościołów, po …
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Zamknięte 6 lat temu . Zamknięte . To pytanie i odpowiedzi na nie są zablokowane, ponieważ pytanie jest niezwiązane z tematem, ale ma znaczenie historyczne. Obecnie nie przyjmuje nowych odpowiedzi ani interakcji. Szukałem w Internecie porównań między …
Czy istnieje funkcja konkatenacji elementów listy z separatorem? Na przykład: > foobar " " ["is","there","such","a","function","?"] ["is there such a function ?"] Dzięki za każdą odpowiedź!
Opracowujemy program, który odbiera i przekazuje dalej „wiadomości”, zachowując tymczasową historię tych wiadomości, aby na żądanie mógł przekazać historię wiadomości. Wiadomości są identyfikowane numerycznie, zwykle mają rozmiar około 1 kilobajta i musimy przechowywać setki tysięcy takich wiadomości. Chcemy zoptymalizować ten program pod kątem opóźnienia: czas między wysłaniem a odebraniem wiadomości …
Jaka jest dokładnie różnica między modiw remHaskell? Wydaje się, że oba dają te same wyniki *Main> mod 2 3 2 *Main> rem 2 3 2 *Main> mod 10 5 0 *Main> rem 10 5 0 *Main> mod 1 0 *** Exception: divide by zero *Main> rem 1 0 *** Exception: …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.