Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 5 lat temu . Popraw to pytanie...
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 5 lat temu . Popraw to pytanie...
Obecne zachowanie Prelude> show _ <interactive>:7:6: Found hole ‘_’ with type: a0 Where: ‘a0’ is an ambiguous type variable Relevant bindings include it :: String (bound at <interactive>:7:1) In the first argument of ‘show’, namely ‘_’ In the expression: show _ In an equation...
map :: (a -> b) -> [a] -> [b] fmap :: Functor f => (a -> b) -> f a -> f b liftM :: Monad m => (a -> b) -> m a -> m b Dlaczego mamy trzy różne funkcje, które zasadniczo robią to samo?
Właśnie zacząłem nowy projekt Haskell i od samego początku chciałem ustawić dobry przepływ pracy podczas testowania. Wygląda na to, że Haskell ma wiele doskonałych i unikalnych narzędzi testowych oraz wiele różnych sposobów ich integracji. Przyjrzałem się: HUnit Szybkie...
Czy w czysto funkcjonalnych językach, takich jak Haskell, istnieje algorytm uzyskiwania odwrotności funkcji (edytuj), gdy jest ona bijektywna? Czy istnieje konkretny sposób zaprogramowania funkcji?
W języku F # użycie operatora potoku do przodu |>jest dość powszechne. Jednak w Haskell widziałem tylko kompozycję funkcji (.), która jest używana. Rozumiem, że są one powiązane , ale czy jest jakiś powód językowy, dla którego funkcja potoku do przodu nie jest używana w Haskell, czy jest to...
Nie jestem pewien, co powoduje ten problem, ale w projekcie, który tworzę, kompilator zajmuje kilka godzin, aby skompilować moduł. Całkowity rozmiar mojej bazy kodu to 352 KB, ale żaden z modułów nie przekracza 10 KB. Używam portu Native, ale jest to bardzo trywialne; Po prostu Date.now()z tym...
Jak można by zakodować ten fragment kodu C w pliku .chs, aby c2hs mógł go przekształcić w coś względnie fajnego? typedef enum { MONOME_BUTTON_UP = 0x00, MONOME_BUTTON_DOWN = 0x01, MONOME_ENCODER_DELTA = 0x02, MONOME_ENCODER_KEY_UP = 0x03, MONOME_ENCODER_KEY_DOWN = 0x04, MONOME_TILT = 0x05,...
Podczas próby debugowania problemu w moim programie (2 okręgi o równym promieniu są rysowane w różnych rozmiarach za pomocą Gloss *), natknąłem się na dziwną sytuację. W moim pliku, który obsługuje obiekty, mam następującą definicję Player: type Coord = (Float,Float) data Obj = Player { oPos ::...
Wszędzie, gdzie próbowałem używać map, fmaprównież działało. Dlaczego twórcy Haskella odczuwali potrzebę mapfunkcji? Czy nie mogło to być po prostu tym, co jest obecnie znane jako fmapifmap które można usunąć z języka?
Próbuję i nie udaje mi się zrozumieć traversefunkcji z Data.Traversable. Nie widzę sensu. Ponieważ pochodzę z imperatywnego środowiska, czy ktoś mógłby mi to wyjaśnić za pomocą imperatywnej pętli? Pseudokod byłby bardzo mile widziany. Dzięki.
Co to jest monada indeksowana i motywacja do tej monady? Czytałem, że pomaga to śledzić skutki uboczne. Ale podpis typu i dokumentacja nie prowadzą mnie do niczego. Jaki byłby przykład tego, jak może pomóc śledzenie skutków ubocznych (lub jakikolwiek inny ważny
Jak mogę uzyskać dostęp do listy według indeksu w Haskell, analogicznie do tego kodu C? int a[] = { 34, 45, 56 }; return
absurdFunkcja w Data.Voidma następujący podpis, gdzie Voidjest logicznie niezamieszkana typ eksportowane przez ten pakiet: -- | Since 'Void' values logically don't exist, this witnesses the logical -- reasoning tool of \"ex falso quodlibet\". absurd :: Void -> a Znam wystarczająco logikę,...
Jestem nowy w programowaniu funkcjonalnym i ostatnio uczę się w Learn You a Haskell , ale kiedy przeczytałem ten rozdział , utknąłem w poniższym programie: import Control.Monad.Writer logNumber :: Int -> Writer [String] Int logNumber x = Writer (x, ["Got number: " ++ show x])...
Czytając ten klasyczny artykuł , utknąłem na paramorfizmach. Niestety sekcja jest dość cienka, a strona Wikipedii nic nie mówi. Moje tłumaczenie Haskell to: para :: (a -> [a] -> b -> b) -> b -> [a] -> b para f base = h where h [] = base h (x:xs) = f x xs (h xs) Ale nie...
Czy jest możliwe napisanie modułu w Haskell, który wyeksportuje moduł oprócz eksportu wszystkiego, co jest widoczne w środku? Rozważmy następujący moduł: module Test where import A f x = x Ten moduł eksportuje wszystko, co jest zdefiniowane w środku, więc eksportuje, fale nie reeksportuje...
Jakie są możliwości uzyskania dokumentów offline dla podstawowych bibliotek Haskell (a może i więcej)? Czasami zabieram laptopa do kawiarni, w której nie ma Wi-Fi, i fajnie byłoby mieć coś takiego jak Hoogle, ale do użytku offline.
Przeglądając Haskell Prelude, widzę funkcję const : const x _ = x Nie mogę znaleźć nic odpowiedniego do tej funkcji. Jaki jest sens? Czy ktoś może podać przykład, gdzie można zastosować tę funkcję?
Niedawno dwukrotnie refaktoryzowałem kod, aby zmienić kolejność parametrów, ponieważ było zbyt dużo kodu, w którym hacki takie jak fliplub \x -> foo bar x 42miały miejsce. Jakie zasady pomogą mi jak najlepiej wykorzystać curry podczas projektowania podpisu funkcji?...