Pytania otagowane jako haskell

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.

1
Czy istnieje wygodny sposób użycia wzorca jako funkcji predykatu?
Niedawno wpadłem na sytuacje, w których muszę przekazać funkcję predykatu do innej funkcji, i dość często logika, której szukam, to w zasadzie „czy ta wartość pasuje do tego wzorca?” Dopasowywanie wzorców wydaje się być preferowane w deklaracjach, doblokach i opisach list, ale istnieje wiele funkcji, które przyjmują predykaty a -> …
10 haskell 

1
Tworzenie całkowicie zależnej konkatenacji
Dobrym prawdziwym faktem na temat konkatenacji jest to, że jeśli znam dowolne dwie zmienne w równaniu: a ++ b = c Więc znam trzeci. Chciałbym uchwycić ten pomysł w swoim własnym konkat, więc używam zależności funkcjonalnej. {-# Language DataKinds, GADTs, FlexibleContexts, FlexibleInstances, FunctionalDependencies, KindSignatures, PolyKinds, TypeOperators, UndecidableInstances #-} import Data.Kind …

4
Zrozumienie czystych funkcji i skutków ubocznych w Haskell - putStrLn
Niedawno zacząłem uczyć się Haskell, ponieważ chciałem poszerzyć swoją wiedzę na temat programowania funkcjonalnego i muszę powiedzieć, że bardzo ją kocham. Zasób, którego obecnie używam, to kurs „Podstawy Haskella, część 1” na temat Pluralsight. Niestety mam pewne trudności ze zrozumieniem jednego konkretnego cytatu prowadzącego na temat następującego kodu i miałem …
10 haskell 




1
Haskells Weak Head Normal Form
Natknąłem się na niektóre irytujące rzeczy. Wiem, że haskell działa ze słabą normalną postacią głowy (WHNF) i wiem, co to jest. Wpisując następujący kod do ghci (używam polecenia: sprint, który redukuje wyrażenie do WHNF według mojej wiedzy.): let intlist = [[1,2],[2,3]] :sprint intlist daje mi intlist = _to całkowicie sens. …



2
Stany zagnieżdżone w Haskell
Próbuję zdefiniować rodzinę maszyn stanowych z nieco odmiennymi rodzajami stanów. W szczególności bardziej „złożone” maszyny stanów mają stany, które powstają przez połączenie stanów prostszych maszyn stanów. (Jest to podobne do ustawienia obiektowego, w którym obiekt ma kilka atrybutów, które również są obiektami.) Oto uproszczony przykład tego, co chcę osiągnąć. data …

2
Typy sum - dlaczego w Haskell `show (Int | Double)` różni się od `(show Int) | (pokaż Double) `
Dlaczego nie są równoważne? show $ if someCondition then someInt else some double i if someCondition then show someInt else show someDouble Rozumiem, że jeśli wyodrębnisz if ... elseczęść w pierwszym przykładzie do wyrażenia samodzielnie, nie będziesz mógł reprezentować jego typu za pomocą anonimowego typu sumy, takiego Int | Doublejak …

1
Co mogę zrobić z callCC, czego nie można zrobić z cd?
Naprawdę mam problemy ze zrozumieniem callCC. Dostaję moc kontynuacji i wykorzystałem tę koncepcję w niektórych moich projektach, aby stworzyć fajne koncepcje. Ale nigdy nie musiałem używać czegoś o większych możliwościach niż cont :: ((a->r)->r)-> Cont r a. Po użyciu ma sens, dlaczego nazywają Cont Monad matką wszystkich monad, JESZCZE, nie …

1
Jak kontrolować niezmienność skali?
Próbuję połączyć kilka diagramów w coś w rodzaju stołu. Myślę, że nazywa się to „drukiem indeksowym” - fotografowie robią to, gdy muszą przeglądać wiele fotografii jednocześnie. W każdym razie jest to kod: main :: IO () main = mainWith @(Diagram B) $ (tile . fmap renderOne) examples renderOne :: AnyGraph …

3
Jaka wiedza lub szkolenie jest potrzebne, aby ktoś mógł zapisać taką definicję foldlM? [Zamknięte]
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 7 miesięcy temu . Ostatnio próbuję użyć Haskell w moim prawdziwym systemie produkcji skrzynek. System typów Haskell naprawdę oferuje …

1
Dlaczego „sztuczka z ograniczeniami” nie działa w tym ręcznie zdefiniowanym wystąpieniu HasField?
Mam ten (co prawda dziwny) kod, który używa obiektywu i GHC . {-# LANGUAGE DataKinds, PolyKinds, FlexibleInstances, UndecidableInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} module Main where import Control.Lens import GHC.Records data Glass r = Glass -- just a …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.