Haskell è un linguaggio di programmazione funzionale caratterizzato da una forte tipizzazione statica, valutazione pigra, ampio parallelismo e supporto della concorrenza e capacità di astrazione uniche.
Sto imparando le candidature di Haskell. Mi sembra (probabilmente sbaglio) che la purefunzione non sia realmente necessaria, ad esempio: pure (+) <*> [1,2,3] <*> [3,4,5] può essere scritto come (+) <$> [1,2,3] <*> [3,4,5] Qualcuno può spiegare il vantaggio che la purefunzione offre sulla mappatura esplicita con fmap?
Questa domanda non è soggettiva. Nel libro di riferimento viene usato un verbo molto specifico, e mi piacerebbe capire qual è l'implicazione di quel fraseggio, perché temo di aver frainteso qualcosa. Da Learn You a Haskell , il seguente paragrafo è il terzo e l'ultimo contenente "assumiamo *". data Barry …
Le proposte (P -> Q) -> Qe P \/ Qsono equivalenti. C'è un modo per testimoniare questa equivalenza in Haskell: from :: Either a b -> ((a -> b) -> b) from x = case x of Left a -> \f -> f a Right b -> \f -> b …
A me sembra che puoi sempre passare argomenti di funzione piuttosto che usare una typeclass. Ad esempio, anziché definire la tabella dei tipi di uguaglianza: class Eq a where (==) :: a -> a -> Bool E usarlo in altre funzioni per indicare l'argomento type deve essere un'istanza di Eq: …
Questa domanda è una domanda teorica sulle funzioni di Haskell che può accettare argomenti di qualsiasi tipo. C'è una differenza tra il modo in cui funziona con le firme dei tipi di a -> b -> a e c -> a -> c sono istanziati? Qualsiasi aiuto è apprezzato.
Attualmente sto studiando Haskell e cerco di capire un progetto che utilizza Haskell per implementare algoritmi crittografici. Dopo aver letto Learn You a Haskell for Great Good online, inizio a capire il codice in quel progetto. Poi ho scoperto che sono bloccato al seguente codice con il simbolo "@": -- …
Molti tipi di ottica hanno una rappresentazione di Van Laarhoven. Ad esempio, un Lenstipo Lens s t a b può essere rappresentato come: Functor f => (a -> f b) -> s -> f t Allo stesso modo a Traversal, può essere rappresentato in modo simile, scambiando il Functorvincolo per …
Nel mio progetto Haskell, quando sto stack runmostrando ciò che segue, ma funziona ancora. Che avvertimento è questo? Come posso liberarmene? Stack has not been tested with GHC versions above 8.6, and using 8.8.2, this may fail Stack has not been tested with Cabal versions above 2.4, but version 3.0.1.0 …
Ho un esercizio in cui devo definire un tipo per rappresentare un elenco con valori da 0 a 5. Per prima cosa ho pensato di poterlo risolvere in modo ricorsivo in questo modo: data List a = Nil | Content a (List a) Ma non penso che questo sia l'approccio …
Real World Haskell, capitolo 4, pagina 98 della stampa chiede se wordspuò essere implementato usando le pieghe, e anche questa è la mia domanda: È possibile? Se no, perché? Se lo è, come? Ho trovato quanto segue, che si basa sull'idea che ogni non spazio dovrebbe essere anteposto all'ultima parola …
Nel calcolo IO (IO ()), sia (IO ())e() viene calcolato, quindi perché main :: IO (IO ()) main = print <$> (print "Hello, World!") Stampa "Hello, World!" non IO "Hello, World!" -- ?? "Hello, World!"
Stavo vagando nella sezione riservata della Biblioteca Haskell e ho trovato questi due incantesimi vili: {- System.IO.Unsafe -} unsafeDupablePerformIO :: IO a -> a unsafeDupablePerformIO (IO m) = case runRW# m of (# _, a #) -> a {- Data.ByteString.Internal -} accursedUnutterablePerformIO :: IO a -> a accursedUnutterablePerformIO (IO m) …
In ghci, quando scrivo :t (-) per capire il tipo di (-), ritorna (-) :: Num a => a -> a -> a Tuttavia, quando scrivo -1haskell restituisce un numero, il che sembra implicare che (-)sia di tipo Num a => a -> a. Come possono (-)apparentemente avere due tipi …
La seasonfunzione utilizza funzioni algebriche ma ritengo che il codice sia ripetitivo. Come posso renderlo il più corto possibile? data Month = Jan | Feb | Mar | Apr | May | June | July | Aug | Sept| Oct | Nov | Dec deriving (Eq,Ord,Show,Read) data Seasons = Spring …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.