Articles of haskell

Rimozione di duplicati da un elenco in Haskell

Sto provando a definire una funzione che rimuoverà i duplicati da una lista. Finora ho un’implementazione funzionante: rmdups :: Eq a => [a] -> [a] rmdups [] = [] rmdups (x:xs) | x `elem` xs = rmdups xs | otherwise = x : rmdups xs Comunque mi piacerebbe rielaborare questo senza usare elem . Quale […]

Come posso convertire una lista in una tupla in Haskell?

Come posso convertire al meglio una lista in una tupla in Haskell: [1,2,3,4,5,6] -> (1,2,3,4,5,6)

Comunicazione tra Java e Haskell

Ho cercato su google e ho ottenuto alcune risposte che la comunicazione tra Java e Haskell può essere fatta da GCJNI (ora il sito è inattivo) e LambdaVM .. Per utilizzare il LambdaVM / GCJNI, se devo scaricare strumenti di compilazione? Dove posso saperne di più su di loro, dal momento che non trovo molte […]

Haskell GHC: qual è la complessità temporale di un pattern che corrisponde a N costruttori?

Diciamo che abbiamo il seguente Haskell: data T = T0 | T1 | T2 | … | TN toInt :: T -> Int toInt t = case t of T0 -> 0 T1 -> 1 T2 -> 2 … TN -> N Quale algoritmo viene utilizzato per eseguire la corrispondenza del modello qui? Vedo due […]

Esiste un elenco di estensioni GHC considerate “sicure”?

Occasionalmente, un pezzo di codice che voglio scrivere non è legale senza almeno un’estensione di lingua. Ciò è particolarmente vero quando si cerca di implementare idee in documenti di ricerca, che tendono a utilizzare qualsiasi versione spassosa e super estesa di GHC al momento della stesura del documento, senza indicare chiaramente quali estensioni siano effettivamente […]

Spiegazione di “bind il nodo”

Leggendo le cose relative a Haskell a volte mi imbatto nell’espressione “bind il nodo”, penso di capire cosa fa, ma non come . Quindi, ci sono delle spiegazioni valide, semplici e semplici da capire su questo concetto?

Dot Operator in Haskell: bisogno di ulteriori spiegazioni

Sto cercando di capire cosa sta facendo l’operatore punto in questo codice Haskell: sumEuler = sum . (map euler) . mkList L’intero codice sorgente è sotto. La mia comprensione L’operatore punto sta prendendo la sum delle due funzioni e il risultato map euler della map euler e il risultato di mkList come input. Ma la […]

In Haskell, quando usiamo con let?

Nel seguente codice, l’ultima frase che posso mettere davanti. Cambierà qualcosa? Un’altra domanda: se decido di inserirla in fronte all’ultima frase, devo indentarla? Ho provato senza indentazione e abbracci lamentele L’ultimo generatore in do {…} deve essere un’espressione import Data.Char groupsOf _ [] = [] groupsOf n xs = take n xs : groupsOf n […]

Gestione delle eccezioni in Haskell

Ho bisogno di aiuto per capire l’uso delle tre funzioni di Haskell provare ( Control.Exception.try :: Exception e => IO a -> IO (Either ea) )) catch ( Control.Exception.catch :: Exception e => IO a -> (e -> IO a) -> IO a ) handle ( Control.Exception.handle :: Exception e => (e -> IO a) […]

Haskell: come viene pronunciato ?

Come pronunciate queste funzioni nella class di caratteri Applicative: () :: f (a -> b) -> fa -> fb (*>) :: fa -> fb -> fb ( fb -> fa (Cioè, se non fossero operatori, come potrebbero essere chiamati?) Come nota a margine, se potessi cambiare pure nome di pure con qualcosa di più amichevole […]