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.
Ecco lo scenario: ho scritto del codice con una firma del tipo e i reclami di GHC non sono stati in grado di dedurre x ~ y per alcuni xe y. Di solito puoi lanciare GHC in un osso e semplicemente aggiungere l'isomorfismo ai vincoli di funzione, ma questa è …
Sto cominciando a capire come forallviene utilizzata la parola chiave nei cosiddetti "tipi esistenziali" come questo: data ShowBox = forall s. Show s => SB s Questo è solo un sottoinsieme, tuttavia, di come forallviene utilizzato e semplicemente non riesco a pensare al suo uso in cose come questa: runST …
Cosa significa Weak Head Normal Form (WHNF)? Che cosa significa Head Normal form (HNF) e Normal Form (NF)? Real World Haskell afferma: La familiare funzione seq valuta un'espressione di ciò che chiamiamo head normal form (abbreviato HNF). Si ferma quando raggiunge il costruttore più esterno (la "testa"). Questo è distinto …
L'espressione "algebrica" per i tipi di dati algebrici sembra molto suggestiva per qualcuno con un background in matematica. Vorrei provare a spiegare cosa intendo. Dopo aver definito i tipi di base Prodotto • Unione + Singleton X Unità 1 e usando la scorciatoia X²per X•Xe 2Xper X+Xeccetera, possiamo quindi definire …
Voglio studiare FRP in Haskell, ma è un po 'difficile decidere su una libreria da usare. Molti sembrano essere tentativi morti, alcuni sembrano essere stati resuscitati (come la recente attività su Yampa). Da quello che ho letto, sembra che ci siano due "tipi" di FRP: push-pull FRP (come in Reactive-banana) …
Mi sono imbattuto nella seguente definizione mentre provo ad imparare Haskell usando un vero progetto per guidarlo. Non capisco cosa significhi il punto esclamativo di fronte a ogni argomento e i miei libri non sembrano menzionarlo. data MidiMessage = MidiMessage !Int !MidiMessage
Template Haskell può scoprire i nomi e / o le dichiarazioni dei sinonimi di tipo associati dichiarati in una classe di tipo? Mi aspettavo che reifyavrebbe fatto quello che volevo, ma non sembra fornire tutte le informazioni necessarie. Funziona per ottenere le firme dei tipi di funzione: % ghci GHCi, …
Sembra che Template Haskell sia spesso visto dalla comunità Haskell come una sfortunata comodità. È difficile esprimere a parole esattamente ciò che ho osservato al riguardo, ma considera questi pochi esempi Modello Haskell elencato sotto "The Ugly (ma necessario)" in risposta alla domanda Quali estensioni Haskell (GHC) dovrebbero usare / …
Haskell (con il GHCcompilatore) è molto più veloce di quanto ti aspetti . Se usato correttamente, può avvicinarsi a lingue di basso livello. (Una cosa preferita da fare per gli Haskeller è cercare di ottenere entro il 5% di C (o addirittura batterlo, ma ciò significa che stai usando un …
I due framework Web Haskell nelle notizie recentemente sono Yesod (a 0,8) e Snap (a 0,4). È abbastanza ovvio che Yesod attualmente supporta molte più funzioni di Snap. Tuttavia, non sopporto la sintassi utilizzata da Yesod per HTML, CSS e Javascript. Quindi, vorrei capire cosa mi sarei perso se fossi …
Sto imparando Haskell e leggendo un paio di articoli riguardanti le differenze di rendimento degli elenchi Haskell e (inserisci la tua lingua) gli array. Essendo uno studente, ovviamente uso solo elenchi senza nemmeno pensare alla differenza di prestazioni. Di recente ho iniziato a indagare e ho trovato numerose librerie di …
Credo che la comunità Erlang non sia invidiosa di Node.js in quanto esegue l'I / O non bloccante in modo nativo e ha modi per ridimensionare facilmente le distribuzioni su più di un processore (qualcosa che non è nemmeno incorporato in Node.js). Maggiori dettagli su http://journal.dedasys.com/2010/04/29/erlang-vs-node-js e Node.js o Erlang …
Forenote: questa è un'estensione del thread avviato su / r / haskell Cominciamo con i fatti: Android è un fantastico sistema operativo Haskell è il miglior linguaggio di programmazione del pianeta Pertanto, chiaramente, combinarli renderebbe lo sviluppo di Android molto migliore. Quindi, in sostanza, vorrei solo sapere come posso scrivere …
Di recente ho pubblicato una domanda su syntactic-2.0 per quanto riguarda la definizione di share. Ho funzionato in GHC 7.6 : {-# LANGUAGE GADTs, TypeOperators, FlexibleContexts #-} import Data.Syntactic import Data.Syntactic.Sugar.BindingT data Let a where Let :: Let (a :-> (a -> b) :-> Full b) share :: (Let :<: …
Mentre spiego a qualcuno cos'è una classe di tipo X, faccio fatica a trovare buoni esempi di strutture dati che siano esattamente X. Quindi, chiedo esempi per: Un costruttore di tipi che non è un Functor. Un costruttore di tipi che è un Functor, ma non Applicativo. Un costruttore di …
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.