map :: (a -> b) -> [a] -> [b] fmap :: Functor f => (a -> b) -> f a -> f b liftM :: Monad m => (a -> b) -> m a -> m b Pourquoi avons-nous trois fonctions différentes qui font essentiellement la même
map :: (a -> b) -> [a] -> [b] fmap :: Functor f => (a -> b) -> f a -> f b liftM :: Monad m => (a -> b) -> m a -> m b Pourquoi avons-nous trois fonctions différentes qui font essentiellement la même
Je viens de démarrer un nouveau projet Haskell et je voulais mettre en place un bon flux de travail de test depuis le début. Il semble que Haskell dispose de nombreux outils de test excellents et uniques et de nombreuses façons de les intégrer. J'ai étudié: HUnit Vérification rapide Banc de Presse...
En F #, l'utilisation de l'opérateur pipe-forward,, |>est assez courante. Cependant, dans Haskell, je n'ai jamais vu que des compositions de fonctions (.), utilisées. Je comprends qu'ils sont liés , mais y a-t-il une raison linguistique pour laquelle le pipe-forward n'est pas utilisé dans...
Je ne suis pas sûr de la cause de ce problème, mais dans un projet que je construis, le compilateur prend des heures juste pour compiler un module. La taille totale de ma base de code est de 352 Ko, mais aucun des modules ne dépasse 10 Ko. J'utilise un port natif, mais c'est très simple; Je vais...
Comment encoder ce morceau de code C dans un fichier .chs afin que c2hs puisse le transformer en quelque chose de relativement sympa? typedef enum { MONOME_BUTTON_UP = 0x00, MONOME_BUTTON_DOWN = 0x01, MONOME_ENCODER_DELTA = 0x02, MONOME_ENCODER_KEY_UP = 0x03, MONOME_ENCODER_KEY_DOWN = 0x04,...
Dans les langages fonctionnels purs comme Haskell, existe-t-il un algorithme pour obtenir l'inverse d'une fonction, (modifier) quand elle est bijective? Et y a-t-il une manière spécifique de programmer votre fonction
J'essaye et je ne parviens pas à faire traversefonctionner la fonction Data.Traversable. Je ne peux pas voir son point. Puisque je viens d'un milieu impératif, quelqu'un peut-il me l'expliquer en termes de boucle impérative? Un pseudo-code serait très apprécié.
En essayant de déboguer un problème dans mon programme (2 cercles avec un rayon égal sont dessinés à différentes tailles en utilisant Gloss *), je suis tombé sur une situation étrange. Dans mon fichier qui gère les objets, j'ai la définition suivante pour un Player: type Coord = (Float,Float) data...
Qu'est-ce que la monade indexée et la motivation de cette monade? J'ai lu que cela aide à suivre les effets secondaires. Mais la signature de type et la documentation ne me mènent nulle part. Quel serait un exemple de la façon dont il peut aider à suivre les effets secondaires (ou tout autre...
Comment puis-je accéder à une liste par index en Haskell, analogue à ce code C? int a[] = { 34, 45, 56 }; return
Partout où j'ai essayé d'utiliser map, fmapa également fonctionné. Pourquoi les créateurs de Haskell ont-ils ressenti le besoin d'une mapfonction? Ne pourrait-il pas être simplement ce qui est actuellement connu fmapet fmappourrait être supprimé de la
Je suis nouveau dans la programmation fonctionnelle et j'ai récemment appris à Learn You a Haskell , mais quand j'ai parcouru ce chapitre , je suis resté coincé avec le programme ci-dessous: import Control.Monad.Writer logNumber :: Int -> Writer [String] Int logNumber x = Writer (x, ["Got...
La absurdfonction dans Data.Voida la signature suivante, où Voidest le type logiquement inhabité exporté par ce package: -- | Since 'Void' values logically don't exist, this witnesses the logical -- reasoning tool of \"ex falso quodlibet\". absurd :: Void -> a Je connais assez de logique pour...
En lisant cet article classique , je suis coincé sur les paramorphismes. Malheureusement, la section est assez mince et la page Wikipédia ne dit rien. Ma traduction Haskell est: para :: (a -> [a] -> b -> b) -> b -> [a] -> b para f base = h where h [] = base h (x:xs) = f x xs (h...
Est-il possible d'écrire un module en Haskell, qui réexporte un module en plus d'exporter tout ce qui est visible à l' intérieur? Considérons le module suivant: module Test where import A f x = x Ce module exporte tout ce qui est défini à l' intérieur, donc il exporte fmais ne réexporte pas tout...
Quelles sont les possibilités, le cas échéant, d'obtenir des documents hors ligne pour les bibliothèques principales de Haskell (et peut-être plus)? Parfois, je prends mon ordinateur portable au café où il n'y a pas de wifi, et ce serait bien d'avoir quelque chose comme Hoogle mais pour une...
Comment puis-je effacer un écran de terminal après que mon utilisateur a sélectionné une option dans le menu de mon application?
J'ai récemment refacturé du code deux fois afin de changer l'ordre des paramètres car il y avait trop de code où les hacks aiment flipou \x -> foo bar x 42se produisaient. Lors de la conception d'une signature de fonction, quels principes m'aideront à tirer le meilleur parti du curry?...
J'avais créé un démon qui utilisait une forme très primitive de ipc(telnet et envoyer une chaîne contenant certains mots dans un certain ordre). Je m'en suis sorti et j'utilise maintenant JSONpour passer des messages à un Yesodserveur. Cependant, il y avait certaines choses que j'aimais vraiment...
J'essaie de rendre les types d'affichage ghci pour mes bibliothèques aussi intuitifs que possible, mais je rencontre beaucoup de difficultés lors de l'utilisation de fonctionnalités de type plus avancées. Disons que j'ai ce code dans un fichier: {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE DataKinds...