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.
I tipi di metodi dipendenti, che prima erano una funzionalità sperimentale, ora sono stati abilitati per impostazione predefinita nel trunk e apparentemente questo sembra aver creato certo entusiasmo nella comunità Scala. A prima vista, non è immediatamente ovvio a cosa possa essere utile. Heiko Seeberger ha pubblicato un semplice esempio …
Anche programmi Haskell banalmente piccoli si trasformano in giganteschi eseguibili. Ho scritto un piccolo programma, che è stato compilato (con GHC) sul binario con le dimensioni che si estendono 7 MB! Cosa può causare la compilazione di un piccolo programma Haskell nell'enorme binario? Cosa posso fare per ridurlo?
È abbastanza facile rappresentare un albero o un elenco in haskell utilizzando tipi di dati algebrici. Ma come rappresenteresti tipograficamente un grafico? Sembra che tu abbia bisogno di suggerimenti. Immagino che potresti avere qualcosa del genere type Nodetag = String type Neighbours = [Nodetag] data Node a = Node a …
Sto riscontrando un comportamento strano con Interactive-Haskell in sostituzione emacs. Quando sorgente un file, il emacsmini buffer mostra una serie di prompt interattivi: Start a new project named 'myproject'? Cabal dir (guessed from myproject.cabal): Build target (empty for default): Set current directory: Se lascio la directory cabal o la directory …
Come posso trovare la quantità effettiva di memoria richiesta per memorizzare un valore di un certo tipo di dati in Haskell (principalmente con GHC)? È possibile valutarlo in fase di esecuzione (ad esempio in GHCi) o è possibile stimare i requisiti di memoria di un tipo di dati composto dai …
Il codice per la funzione myAny in questa domanda usa foldr. Arresta l'elaborazione di un elenco infinito quando il predicato è soddisfatto. L'ho riscritto usando foldl: myAny :: (a -> Bool) -> [a] -> Bool myAny p list = foldl step False list where step acc item = p item …
Sto imparando Haskell da learnyouahaskell.com . Ho problemi a comprendere i costruttori di tipi e i costruttori di dati. Ad esempio, non capisco davvero la differenza tra questo: data Car = Car { company :: String , model :: String , year :: Int } deriving (Show) e questo: data …
La monade del lettore è così complessa e sembra essere inutile. In un linguaggio imperativo come Java o C ++, non esiste un concetto equivalente per la monade del lettore, se non mi sbaglio. Puoi farmi un semplice esempio e chiarire un po 'questo?
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 …
Mi chiedo da tempo perché la valutazione pigra sia utile. Devo ancora farmi spiegare da nessuno in un modo che abbia senso; per lo più finisce per ridursi a "fidati di me". Nota: non intendo memoizzazione.
Diciamo che ho il seguente record ADT: data Foo = Bar { a :: Integer, b :: String, c :: String } Voglio una funzione che prende un record e restituisce un record (dello stesso tipo) in cui tutti i campi tranne uno hanno valori identici a quello passato come …
Sono curioso di sapere perché le implementazioni Haskell utilizzano un GC. Non riesco a pensare a un caso in cui GC sarebbe necessario in un linguaggio puro. È solo un'ottimizzazione per ridurre la copia o è effettivamente necessaria? Sto cercando un codice di esempio che potrebbe perdere se un GC …
Ho setacciato Internet per una spiegazione effettiva di ciò che fa questa parola chiave. Ogni tutorial Haskell che ho visto inizia a usarlo in modo casuale e non spiega mai cosa fa (e ne ho visti molti). Ecco un pezzo di codice di base da Real World Haskell che utilizza …
Il sito Web di Haskell introduce una funzione quicksort a 5 righe molto interessante , come mostrato di seguito. quicksort [] = [] quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater) where lesser = filter (< p) xs greater = filter (>= p) xs Includono anche un "True …
Voglio affrontare alcuni problemi di elaborazione delle immagini in Haskell. Sto lavorando sia con immagini bitonali (bitmap) che a colori con milioni di pixel. Ho una serie di domande: Su quale base dovrei scegliere tra Vector.Unboxede UArray? Sono entrambi array unboxed, ma l' Vectorastrazione sembra fortemente pubblicizzata, in particolare intorno …
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.