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.
Ero un po 'confuso dalla documentazione per fix(anche se penso di capire cosa dovrebbe fare ora), quindi ho guardato il codice sorgente. Questo mi ha lasciato più confuso: fix :: (a -> a) -> a fix f = let x = f x in x In che modo esattamente questo …
Recentemente ho completato un corso universitario che prevedeva Haskell e Agda (un linguaggio di programmazione funzionale tipizzato dipendente) e mi chiedevo se fosse possibile sostituire il lambda calcolo in questi con la logica combinatoria. Con Haskell questo sembra possibile utilizzando i combinatori S e K, rendendolo così privo di punti. …
Questo pezzo di codice Haskell viene eseguito molto più lentamente -O, ma non -Odovrebbe essere pericoloso . Qualcuno può dirmi cosa è successo? Se è importante, è un tentativo di risolvere questo problema e utilizza la ricerca binaria e l'albero dei segmenti persistenti: import Control.Monad import Data.Array data Node = …
Sto cercando di capire cosa sta facendo l'operatore punto in questo codice Haskell: sumEuler = sum . (map euler) . mkList L'intero codice sorgente è di seguito. La mia comprensione L'operatore punto prende le due funzioni sume il risultato di map eulere il risultato di mkListcome input. Ma sumuna funzione …
In GHCi: Prelude> error (error "") *** Exception: Prelude> (error . error) "" *** Exception: *** Exception: Perché la prima non è un'eccezione annidata?
Come posso ottenere esqueleto per generare una stringa SQL da fromun'istruzione? La documentazione di toRawSqldice che "puoi semplicemente attivare la registrazione delle query di persistente". Ho provato tutte le forme possibili di MonadLoggerquello che potevo capire, ma non ha mai stampato alcun SQL. La stessa documentazione dice anche "usare manualmente …
Quando compilo la mia applicazione Haskell con l' -Wallopzione, GHC si lamenta delle istanze orfane, ad esempio: Publisher.hs:45:9: Warning: orphan instance: instance ToSElem Result La classe del tipo ToSElemnon è mia, è definita da HStringTemplate . Ora so come risolvere questo problema (sposta la dichiarazione dell'istanza nel modulo in cui …
Allo stato attuale, questa domanda non è adatta al nostro formato di domande e risposte. Ci aspettiamo che le risposte siano supportate da fatti, riferimenti o competenze, ma questa domanda probabilmente solleciterà dibattiti, discussioni, sondaggi o discussioni estese. Se ritieni che questa domanda possa essere migliorata e possibilmente riaperta, visita …
Dato : data Foo = FooString String … class Fooable a where --(is this a good way to name this?) toFoo :: a -> Foo Voglio fare Stringun'istanza di Fooable: instance Fooable String where toFoo = FooString GHC quindi si lamenta: Illegal instance declaration for `Fooable String' (All instance types …
Ho scritto questo piccolo pezzo di Haskell per capire come GHC dimostra che per i numeri naturali, puoi solo dimezzare quelli pari: {-# LANGUAGE DataKinds, GADTs, KindSignatures, TypeFamilies #-} module Nat where data Nat = Z | S Nat data Parity = Even | Odd type family Flip (x :: …
Secondo la mia comprensione, le funzioni parziali sono funzioni che otteniamo passando meno parametri a una funzione del previsto. Ad esempio, se questo fosse direttamente valido in Python: >>> def add(x,y): ... return x+y ... >>> new_function = add(1) >>> new_function(2) 3 Nel frammento sopra, new_functionè una funzione parziale. Tuttavia, …
Attualmente sto lavorando a un semplice interprete per un linguaggio di programmazione e ho un tipo di dati come questo: data Expr = Variable String | Number Int | Add [Expr] | Sub Expr Expr E ho molte funzioni che fanno cose semplici come: -- Substitute a value for a …
Ho riscontrato un piccolo problema estetico nel mio progetto musicale e mi ha infastidito da tempo. Ho un tipo data Key = C | D | ...e posso costruire a Scaleda a Keye a Mode. La Modedistinzione tra ad esempio una scala maggiore e una minore. Posso definire il Modetipo …
Nel modulo System.Infovedo queste funzioni: os :: String arch :: String compilerName :: String compilerVersion :: Version Perché non IOc'è? Stanno accedendo al sistema ... Sbaglio? La mia aspettativa era qualcosa di simile: os :: IO String arch :: IO String compilerName :: IO String compilerVersion :: IO Version Caso …
Supponiamo che io abbia un parametro che esiste solo a beneficio del sistema di tipi, ad esempio come in questo piccolo programma: {-# LANGUAGE GADTs #-} module Main where import Data.Proxy import Data.List data MyPoly where MyConstr :: Proxy a -> a -> (Proxy a -> a -> Int -> …
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.