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.
Je ne comprends pas pourquoi m1 est apparemment mémorisé alors que m2 n'est pas dans ce qui suit: m1 = ((filter odd [1..]) !!) m2 n = ((filter odd [1..]) !! n) m1 10000000 prend environ 1,5 seconde sur le premier appel, et une fraction de cela sur les appels …
Quelle est la classe de types Comonad dans Haskell? Comme dans Comonad de Control.Comonad dans le paquet comonad (les explications de tout autre paquet qui fournit une classe de type Comonad sont également les bienvenues). J'ai vaguement entendu parler de Comonad, mais tout ce que je sais vraiment, c'est qu'il …
J'ai récemment découvert que les trous de type combinés à la correspondance de motifs sur les épreuves offrent une expérience assez agréable de type Agda dans Haskell. Par exemple: {-# LANGUAGE DataKinds, PolyKinds, TypeFamilies, UndecidableInstances, GADTs, TypeOperators #-} data (==) :: k -> k -> * where Refl :: x …
Hier, j'ai découvert un nouvel outil Haskell appelé Stack . À première vue, on dirait qu'il fait à peu près le même travail que Cabal. Alors, quelle est la différence entre eux? La pile remplace-t-elle Cabal? Dans quels cas dois-je utiliser Stack au lieu de Cabal? Que peut faire Stack …
Dans l'état actuel des choses, cette question ne convient pas à notre format de questions-réponses. Nous nous attendons à ce que les réponses soient étayées par des faits, des références ou une expertise, mais cette question suscitera probablement un débat, des arguments, un sondage ou une discussion approfondie. Si vous …
En résolvant certains problèmes du projet Euler pour apprendre Haskell (je suis donc actuellement complètement débutant), je suis tombé sur le problème 12 . J'ai écrit cette solution (naïve): --Get Number of Divisors of n numDivs :: Integer -> Integer numDivs n = toInteger $ length [ x | x<-[2.. …
La sécurité des types de Haskell est inégalée uniquement par rapport aux langages à typage dépendant. Mais il y a une magie profonde en cours avec Text.Printf qui semble plutôt insensée . > printf "%d\n" 3 3 > printf "%s %f %d" "foo" 3.3 3 foo 3.3 3 Quelle est …
Les types de données algébriques (ADT) dans Haskell peuvent automatiquement devenir des instances de certaines classes de types (commeShow,Eq) en dérivant d'eux. data Maybe a = Nothing | Just a deriving (Eq, Ord) Ma question est la suivante: comment cela derivingfonctionne-t-il, c'est-à-dire comment Haskell sait comment implémenter les fonctions de …
J'ai trois fonctions qui trouvent le nième élément d'une liste: nthElement :: [a] -> Int -> Maybe a nthElement [] a = Nothing nthElement (x:xs) a | a <= 0 = Nothing | a == 1 = Just x | a > 1 = nthElement xs (a-1) nthElementIf :: [a] …
Fermé . Cette question doit être plus ciblée . Il n'accepte pas les réponses actuellement. Vous souhaitez améliorer cette question? Mettez à jour la question pour qu'elle se concentre sur un problème uniquement en éditant ce message . Fermé il y a 5 ans . Améliorez cette question Les langages …
Comportement actuel Prelude> show _ <interactive>:7:6: Found hole ‘_’ with type: a0 Where: ‘a0’ is an ambiguous type variable Relevant bindings include it :: String (bound at <interactive>:7:1) In the first argument of ‘show’, namely ‘_’ In the expression: show _ In an equation for ‘it’: it = show _ …
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 chose?
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 …
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 Haskell ou est-ce autre chose?
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 ainsi?
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.