J’ai écrit cet extrait de code et je suppose que len est récursif, mais un débordement de stack se produit toujours. Qu’est-ce qui ne va pas? myLength :: [a] -> Integer myLength xs = len xs 0 where len [] l = l len (x:xs) l = len xs (l+1) main = print $ myLength […]
Quelqu’un peut-il me donner un bref exemple de test des actions IO en utilisant Monadic QuickCheck?
Comment GHC gère-t-il les thunks accessibles par plusieurs threads (soit des threads explicites, soit des processus internes évaluant les étincelles)? Est-il possible que plusieurs threads évaluent le même thunk, dupliquant le travail? Ou, si les thunks sont synchronisés, comment, pour que les performances ne souffrent pas?
Lorsque vous programmez en Haskell (et en particulier lorsque vous résolvez des problèmes liés à Project Euler, où les solutions sous-optimales ont tendance à accentuer les besoins en CPU ou en mémoire), je suis souvent perplexe quant à la manière dont le programme se comporte. Je regarde les profils, j’essaie d’introduire une certaine rigueur, j’ai […]
J’ai vu des gens recommander une bibliothèque de pipes / conduits pour diverses tâches liées aux IO paresseuses. Quel problème ces bibliothèques résolvent-elles exactement? En outre, lorsque j’essaie d’utiliser des bibliothèques liées au piratage, il existe très probablement trois versions différentes. Exemple: attoparsec pipes-attoparsec attoparsec-conduit Cela me confond Pour mes tâches d’parsing, dois-je utiliser attoparsec […]
J’ai une classe MyClass , et il y a une fonction qui produit une Ssortingng . Je veux utiliser ceci pour impliquer une instance de Show , afin que je puisse transmettre les types implémentant MyClass . Jusqu’à présent, j’ai class MyClass a where someFunc :: a -> a myShow :: a -> Ssortingng instance […]
Comme indiqué ci-dessous, dans Haskell, il est possible de stocker dans une liste des valeurs de types hétérogènes avec certaines limites de contexte: data ShowBox = forall s. Show s => ShowBox s heteroList :: [ShowBox] heteroList = [ShowBox (), ShowBox 5, ShowBox True] Comment puis-je obtenir la même chose dans Scala, de préférence sans […]
Considérons les langages orientés object: La plupart des personnes issues d’un contexte de programmation orientée object sont familiarisées avec les interfaces communes et intuitives dans différents langages qui capturent l’essence des interfaces Collection & List de Java. Collection fait référence à une collection d’objects qui n’a pas nécessairement un classement / indexation naturel. Une List […]
Développeur impérieux depuis quelques années, je n’avais jamais eu envie d’apprendre la functional programming. Il y a quelques mois, j’ai finalement décidé d’apprendre Haskell. C’est un langage plutôt cool, mais je suis perplexe sur la façon dont une application réelle pilotée par un événement serait programmée dans un tel langage. Connaissez-vous un bon tutoriel à […]
Quelle est la solution idiomatique Haskell pour l’dependency injection? Par exemple, supposons que vous ayez une interface frobby et que vous deviez passer une instance conforme à frobby (il pourrait y avoir plusieurs variétés de ces instances, disons foo et bar ). Les opérations typiques seraient: fonctions qui prennent une valeur X et renvoient une […]