Haskell est un langage de programmation fonctionnel comprenant un typage statique fort, une évaluation paresseuse, un support étendu du parallélisme et de la concurrence, et des capacités d'abstraction uniques.
Voici le scénario: j'ai écrit du code avec une signature de type et GHC ne peut pas déduire x ~ y pour certains xet y. Vous pouvez généralement lancer un os GHC et simplement ajouter l'isomorphisme aux contraintes de fonction, mais c'est une mauvaise idée pour plusieurs raisons: Il ne …
Je commence à comprendre comment le forallmot-clé est utilisé dans les soi-disant "types existentiels" comme ceci: data ShowBox = forall s. Show s => SB s Ce n'est qu'un sous-ensemble, cependant, de la façon dont il forallest utilisé et je ne peux tout simplement pas me concentrer sur son utilisation …
Que signifie la forme normale de la tête faible (WHNF)? Que signifient la forme normale de la tête (HNF) et la forme normale (NF)? Le monde réel Haskell déclare: La fonction seq familière évalue une expression à ce que nous appelons la forme normale de tête (en abrégé HNF). Il …
L'expression «algébrique» pour les types de données algébriques semble très suggestive pour une personne ayant une formation en mathématiques. Permettez-moi d'essayer d'expliquer ce que je veux dire. Après avoir défini les types de base Produit • syndicat + Singleton X Unité 1 et en utilisant le raccourci X²pour X•Xet 2Xpour …
Je veux étudier FRP à Haskell, mais c'est un peu difficile de décider d'une bibliothèque à utiliser. Beaucoup semblent être des tentatives mortes, certains semblent avoir été ressuscités (comme la récente activité sur Yampa). D'après ce que j'ai lu, il semble qu'il existe deux "types" de FRP: le FRP push-pull …
Je suis tombé sur la définition suivante en essayant d'apprendre Haskell en utilisant un vrai projet pour le piloter. Je ne comprends pas ce que signifie le point d'exclamation devant chaque argument et mes livres ne semblent pas le mentionner. data MidiMessage = MidiMessage !Int !MidiMessage
Template Haskell peut-il connaître les noms et / ou les déclarations des synonymes de type associés déclarés dans une classe de type? Je m'attendais à reifyce que je fasse ce que je veux, mais cela ne semble pas fournir toutes les informations nécessaires. Cela fonctionne pour obtenir des signatures de …
Il semble que Template Haskell soit souvent considéré par la communauté Haskell comme une commodité malheureuse. Il est difficile de mettre en mots exactement ce que j'ai observé à cet égard, mais considérez ces quelques exemples Modèle Haskell répertorié sous "The Ugly (but necessary)" en réponse à la question Quelles …
Haskell (avec le GHCcompilateur) est beaucoup plus rapide que prévu . Utilisé correctement, il peut se rapprocher des langues de bas niveau. (Une des choses préférées des Haskellers est d'essayer d'obtenir jusqu'à 5% de C (ou même de le battre, mais cela signifie que vous utilisez un programme C inefficace, …
Les deux frameworks web Haskell récemment publiés sont Yesod (à 0,8) et Snap (à 0,4). Il est assez évident que Yesod prend actuellement en charge beaucoup plus de fonctionnalités que Snap. Cependant, je ne supporte pas la syntaxe utilisée par Yesod pour son HTML, CSS et Javascript. Donc, j'aimerais comprendre …
J'apprends Haskell et j'ai lu quelques articles concernant les différences de performances des listes Haskell et (insérez votre langue) les tableaux. Étant un apprenant, j'utilise évidemment des listes sans même penser à la différence de performance. J'ai récemment commencé à enquêter et trouvé de nombreuses bibliothèques de structures de données …
Je crois que la communauté Erlang n'est pas envieuse de Node.js car elle fait des E / S non bloquantes en natif et a des moyens de faire évoluer facilement les déploiements sur plus d'un processeur (quelque chose qui n'est même pas intégré dans Node.js). Plus de détails sur http://journal.dedasys.com/2010/04/29/erlang-vs-node-js …
Forenote: Ceci est une extension du thread démarré sur / r / haskell Commençons par les faits: Android est un système d'exploitation génial Haskell est le meilleur langage de programmation de la planète Par conséquent, il est clair que les combiner améliorerait le développement Android. Donc, essentiellement, je voudrais simplement …
J'ai récemment posté une question sur syntactic-2.0 concernant la définition de share. J'ai eu ce travail dans 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 :<: sup, …
Tout en expliquant à quelqu'un ce qu'est une classe de type X, j'ai du mal à trouver de bons exemples de structures de données qui sont exactement X. Je demande donc des exemples pour: Un constructeur de type qui n'est pas un Functor. Un constructeur de type qui est un …
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.