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.
Come si potrebbe codificare questo pezzo di codice C in un file .chs in modo che c2hs possa trasformarlo in qualcosa di relativamente carino? typedef enum { MONOME_BUTTON_UP = 0x00, MONOME_BUTTON_DOWN = 0x01, MONOME_ENCODER_DELTA = 0x02, MONOME_ENCODER_KEY_UP = 0x03, MONOME_ENCODER_KEY_DOWN = 0x04, MONOME_TILT = 0x05, /* update this if you …
Non sono sicuro di cosa stia causando questo problema, ma in un progetto che sto costruendo, il compilatore impiega ore solo per compilare un modulo. La dimensione totale del mio codice base è di 352 KB, ma nessuno dei moduli supera i 10 KB. Sto usando una porta nativa, ma …
Durante il tentativo di eseguire il debug di un problema nel mio programma (2 cerchi con un raggio uguale vengono disegnati in dimensioni diverse utilizzando Gloss *), mi sono imbattuto in una strana situazione. Nel mio file che gestisce gli oggetti, ho la seguente definizione per a Player: type Coord …
Sto provando e non riesco a recuperare la traversefunzione da Data.Traversable. Non riesco a vedere il suo punto. Dato che provengo da un background imperativo, qualcuno può spiegarmelo in termini di ciclo imperativo? Lo pseudo codice sarebbe molto apprezzato. Grazie.
Qual è la monade indicizzata e la motivazione per questa monade? Ho letto che aiuta a tenere traccia degli effetti collaterali. Ma la firma del tipo e la documentazione non mi portano da nessuna parte. Quale potrebbe essere un esempio di come può aiutare a tenere traccia degli effetti collaterali …
Ovunque ho provato a usare map, fmapha funzionato anche. Perché i creatori di Haskell hanno sentito il bisogno di una mapfunzione? Non potrebbe essere solo ciò che è attualmente noto fmape fmappotrebbe essere rimosso dalla lingua?
La absurdfunzione in Data.Voidha la seguente firma, dove Voidè il tipo logicamente disabitato esportato da quel pacchetto: -- | Since 'Void' values logically don't exist, this witnesses the logical -- reasoning tool of \"ex falso quodlibet\". absurd :: Void -> a Conosco abbastanza logica per ottenere l'osservazione della documentazione che …
Leggendo questo classico articolo , sono bloccato sui paramorfismi. Sfortunatamente la sezione è piuttosto sottile e la pagina di Wikipedia non dice nulla. La mia traduzione Haskell è: para :: (a -> [a] -> b -> b) -> b -> [a] -> b para f base = h where h …
Sono nuovo nella programmazione funzionale e recentemente ho imparato a Learn You a Haskell , ma quando ho seguito questo capitolo , sono rimasto bloccato con il programma seguente: import Control.Monad.Writer logNumber :: Int -> Writer [String] Int logNumber x = Writer (x, ["Got number: " ++ show x]) multWithLog …
È possibile scrivere un modulo in Haskell, che riesporta un modulo oltre a esportare tutto ciò che è visibile all'interno? Consideriamo il seguente modulo: module Test where import A f x = x Questo modulo esporta tutto ciò che è definito all'interno, quindi esporta fma non riesporta nulla di importato …
Quali sono le possibilità, se ce ne sono, per ottenere documenti offline per le librerie principali Haskell (e forse anche di più)? A volte porto il mio laptop al bar dove non c'è wifi, e sarebbe bello avere qualcosa come Hoogle ma per uso offline.
Avevo creato un demone che utilizzava una forma molto primitiva di ipc(telnet e invia una stringa che aveva determinate parole in un certo ordine). Ne sono uscito e ora lo sto usando JSONper passare i messaggi a un Yesodserver. Tuttavia, c'erano alcune cose che mi sono piaciute molto del mio …
Sto cercando di rendere i tipi visualizzati da ghci per le mie librerie il più intuitivi possibile, ma sto incontrando molte difficoltà quando utilizzo funzionalità di tipo più avanzate. Diciamo che ho questo codice in un file: {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeOperators #-} import …
Di recente ho refactoring due volte del codice per modificare l'ordine dei parametri perché c'era troppo codice in cui gli hack come flipo \x -> foo bar x 42stavano accadendo. Quando progetto una firma di funzione, quali principi mi aiuteranno a utilizzare al meglio il curry?
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.