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.
Wyjaśniając komuś, czym jest klasa X, staram się znaleźć dobre przykłady struktur danych, które są dokładnie X. Proszę o przykłady: Konstruktor typów, który nie jest Functorem. Konstruktor typów, który jest Functorem, ale nie ma zastosowania. Konstruktor typów, który jest aplikacyjny, ale nie jest monadą. Konstruktor typów, który jest Monadą. Myślę, …
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 2 lata temu . Popraw to pytanie Czytam „ Naucz się Haskella dla wielkiego dobra” i nigdy …
Wiem, że możesz przekonwertować Stringliczbę na liczbę za pomocą read: Prelude> read "3" :: Int 3 Prelude> read "3" :: Double 3.0 Ale jak zdobyć Stringreprezentację Intwartości?
Rdzeń jest językiem pośrednim GHC. Czytanie rdzenia może pomóc ci lepiej zrozumieć wydajność twojego programu. Ktoś poprosił mnie o dokumentację lub samouczki na temat czytania rdzenia, ale nie mogłem wiele znaleźć. Jaka dokumentacja jest dostępna do odczytu GHC Core? Oto, co znalazłem do tej pory: Napisz Haskell tak szybko, jak …
GHC ma wiele optymalizacji, które może wykonać, ale nie wiem, jakie są one wszystkie, ani jak prawdopodobne jest ich wykonanie i w jakich okolicznościach. Moje pytanie brzmi: jakich przekształceń mogę się spodziewać za każdym razem, czy prawie tak? Jeśli często patrzę na fragment kodu, który będzie często wykonywany (oceniany), a …
Istnieją co najmniej trzy popularne biblioteki umożliwiające dostęp do pól rekordów i manipulowanie nimi. Te, które znam, to: akcesorium do danych, etykiety fc i soczewki. Osobiście zacząłem od akcesora danych i używam ich teraz. Jednak ostatnio w haskell-cafe panowała opinia, że fclabels są lepsze. Dlatego interesuje mnie porównanie tych trzech …
Czy ktokolwiek mógłby podać kilka wskazówek, dlaczego nieczyste obliczenia w Haskell są modelowane jako monady? Chodzi mi o to, że monada to tylko interfejs z 4 operacjami, więc jaki był powód modelowania w niej efektów ubocznych?
Czy istnieje standardowy sposób dzielenia łańcucha w Haskell? linesi wordsdziała świetnie z dzieleniem na spację lub znak nowej linii, ale na pewno istnieje standardowy sposób dzielenia przecinkiem? Nie mogłem go znaleźć w Hoogle. Mówiąc konkretnie, szukam czegoś, co split "," "my,comma,separated,list"wraca ["my","comma","separated","list"].
Widziałem kilka źródeł powtarzających opinię, że „Haskell stopniowo staje się językiem opartym na typach zależnych”. Wydaje się, że implikacja jest taka, że przy coraz większej liczbie rozszerzeń języka Haskell dryfuje w tym ogólnym kierunku, ale jeszcze go tam nie ma. Zasadniczo chciałbym wiedzieć o dwóch rzeczach. Po pierwsze, po prostu, …
Próbuję zdefiniować dowolną prostą funkcję, która obejmuje wiele linii w ghci, weźmy jako przykład: let abs n | n >= 0 = n | otherwise = -n Do tej pory próbowałem nacisnąć Enter po pierwszej linii: Prelude> let abs n | n >= 0 = n Prelude> | otherwise = …
Cechy w Rust wydają się przynajmniej powierzchownie podobne do typeklas w Haskell, jednak widziałem, jak ludzie piszą, że są między nimi pewne różnice. Zastanawiałem się dokładnie, jakie są te różnice.
Tak, te : {-#LANGUAGE TypeOperators, RankNTypes #-} import Control.Morphism.Zygo import Control.Morphism.Prepro import Control.Morphism.Histo import Control.Functor.Algebra import Control.Functor.Extras import Control.Functor.Fix import Control.Comonad.Cofree zygohistomorphic_prepromorphism :: Functor f => Algebra f b -> GAlgebra f (ZygoT (Cofree f) b) a -> (f :~> f) -> FixF f -> a zygohistomorphic_prepromorphism f = g_prepro …
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.