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.
Les types de méthode dépendants, qui étaient auparavant une fonctionnalité expérimentale, ont maintenant été activés par défaut dans le coffre , et apparemment cela semble avoir créé une certaine excitation dans la communauté Scala. À première vue, il n'est pas immédiatement évident à quoi cela pourrait être utile. Heiko Seeberger …
Même les programmes Haskell de petite taille se transforment en exécutables gigantesques. J'ai écrit un petit programme, qui a été compilé (avec GHC) en binaire avec une taille de 7 Mo! Qu'est-ce qui peut provoquer la compilation d'un petit programme Haskell en un énorme binaire? Que puis-je faire, le cas …
Il est assez facile de représenter un arbre ou une liste dans haskell en utilisant des types de données algébriques. Mais comment procéder pour représenter typographiquement un graphique? Il semble que vous ayez besoin de pointeurs. Je suppose que tu pourrais avoir quelque chose comme type Nodetag = String type …
Je rencontre un comportement étrange avec la réplique Interactive-Haskell emacs. Lorsque je recherche un fichier, le emacsmini-tampon affiche une série d'invites interactives: Start a new project named 'myproject'? Cabal dir (guessed from myproject.cabal): Build target (empty for default): Set current directory: Si je laisse le répertoire cabal ou le répertoire …
Comment puis-je trouver la quantité réelle de mémoire requise pour stocker une valeur d'un type de données dans Haskell (principalement avec GHC)? Est-il possible de l'évaluer à l'exécution (par exemple dans GHCi) ou est-il possible d'estimer les besoins en mémoire d'un type de données composé à partir de ses composants? …
Le code de la fonction myAny dans cette question utilise foldr. Il arrête de traiter une liste infinie lorsque le prédicat est satisfait. Je l'ai réécrit en utilisant foldl: myAny :: (a -> Bool) -> [a] -> Bool myAny p list = foldl step False list where step acc item …
J'apprends Haskell de Learnyouahaskell.com . J'ai du mal à comprendre les constructeurs de types et les constructeurs de données. Par exemple, je ne comprends pas vraiment la différence entre ceci: data Car = Car { company :: String , model :: String , year :: Int } deriving (Show) et …
La monade du lecteur est si complexe et semble inutile. Dans un langage impératif comme Java ou C ++, il n'y a pas de concept équivalent pour la monade du lecteur, si je ne me trompe pas. Pouvez-vous me donner un exemple simple et éclaircir un peu cela?
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 …
Je me demande depuis longtemps pourquoi l'évaluation paresseuse est utile. Je n'ai encore personne à m'expliquer d'une manière qui ait du sens; la plupart du temps, cela finit par se résumer à «faites-moi confiance». Remarque: je ne parle pas de mémorisation.
Disons que j'ai l'enregistrement ADT suivant: data Foo = Bar { a :: Integer, b :: String, c :: String } Je veux une fonction qui prend un enregistrement et renvoie un enregistrement (du même type) où tous les champs sauf un ont des valeurs identiques à celui passé en …
Je suis curieux de savoir pourquoi les implémentations Haskell utilisent un GC. Je ne peux pas penser à un cas où GC serait nécessaire dans un langage pur. S'agit-il simplement d'une optimisation pour réduire la copie ou est-ce vraiment nécessaire? Je recherche un exemple de code qui fuirait si un …
J'ai parcouru Internet pour une explication réelle de ce que fait ce mot-clé. Chaque tutoriel Haskell que j'ai regardé commence juste à l'utiliser de manière aléatoire et n'explique jamais ce qu'il fait (et j'en ai regardé beaucoup). Voici un morceau de code de base de Real World Haskell qui utilise …
Le site Web de Haskell présente une fonction de tri rapide en 5 lignes très attrayante , comme illustré ci-dessous. quicksort [] = [] quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater) where lesser = filter (< p) xs greater = filter (>= p) xs Ils incluent également …
Je suis nouveau à Haskell et je suis très confus par Where vs. Let . Ils semblent tous deux avoir un objectif similaire. J'ai lu quelques comparaisons entre Where vs. Let mais j'ai du mal à discerner quand les utiliser. Quelqu'un pourrait-il fournir un contexte ou peut-être quelques exemples qui …
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.