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.
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, /* update this if you add event types */ …
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 aportuję . Czy …
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 coś …
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?
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 :: Coord, oDims :: …
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.
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?
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 przykład)?
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ę, aby uzyskać uwagę dokumentacji, że odpowiada to, poprzez zgodność …
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]) multWithLog :: Writer [String] Int …
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) …
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 niczego importowanego z A. Z drugiej …
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ę?
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.