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.
J'ai ce code (certes bizarre) qui utilise l' objectif et le GHC . {-# LANGUAGE DataKinds, PolyKinds, FlexibleInstances, UndecidableInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} module Main where import Control.Lens import GHC.Records data Glass r = Glass -- just …
Problème Considérez le problème de conception suivant dans Haskell. J'ai un EDSL simple et symbolique dans lequel je veux exprimer des variables et des expressions générales (polynômes multivariés) comme x^2 * y + 2*z + 1. De plus, je veux exprimer certaines équations symboliques sur des expressions, disons x^2 + …
La Applicativeclasse de types représente des foncteurs monoïdes laxistes qui préservent la structure monoïde cartésienne sur la catégorie des fonctions typées. En d'autres termes, étant donné les isomorphismes canoniques témoins qui (,)forment une structure monoïdale: -- Implementations left to the motivated reader assoc_fwd :: ((a, b), c) -> (a, (b, …
Un modèle que j'ai rencontré un certain nombre de fois maintenant est celui où une liste de valeurs doit être vérifiée en mappant un test dessus et en voyant si certains ou tous les éléments ont réussi. La solution typique consiste simplement à utiliser les fonctions intégrées allet any. Le …
J'ai trébuché sur des choses irritantes. Je sais que haskell fonctionne avec une forme normale de tête faible (WHNF) et je sais ce que c'est. Taper le code suivant dans ghci (j'utilise la commande: sprint qui réduit l'expression à WHNF à ma connaissance.): let intlist = [[1,2],[2,3]] :sprint intlist intlist …
J'apprends Haskell et je faisais un programme de base de données simple pour Yesod quand je suis tombé sur ce comportement que j'ai du mal à comprendre: testFn :: Int -> Bool -> [Int] testFn a b = if b then replicate 10 a else [] Session Yesod GHCI: $ …
(Inspiré par ma réponse à cette question .) Considérez ce code (il est censé trouver le plus grand élément inférieur ou égal à une entrée donnée): data TreeMap v = Leaf | Node Integer v (TreeMap v) (TreeMap v) deriving (Show, Read, Eq, Ord) closestLess :: Integer -> TreeMap v …
J'essaie de définir une famille de machines à états avec des types d'états quelque peu différents. En particulier, les machines à états les plus "complexes" ont des états qui sont formés en combinant les états des machines à états plus simples. (Ceci est similaire à un paramètre orienté objet où …
Pourquoi ne sont-ils pas équivalents? show $ if someCondition then someInt else some double et if someCondition then show someInt else show someDouble Je comprends que si vous isolez la if ... elsepartie dans le premier exemple d'une expression par elle-même, vous ne pouvez pas représenter son type avec un …
J'ai vraiment du mal à comprendre callCC. J'ai la puissance de Continuations et j'ai utilisé le concept dans certains de mes projets pour créer des concepts sympas. Mais je n'ai jamais eu besoin d'utiliser quelque chose avec de plus grandes capacités quecont :: ((a->r)->r)-> Cont r a . Après l'avoir …
J'essaie de rassembler plusieurs diagrammes dans une sorte de tableau. Je pense que cela s'appelle "index print" , les photographes le font quand ils doivent revoir plusieurs photos à la fois. Quoi qu'il en soit, voici le code: main :: IO () main = mainWith @(Diagram B) $ (tile . …
Fermé . Cette question doit être plus ciblée . Il n'accepte pas actuellement les réponses. Voulez-vous améliorer cette question? Mettez à jour la question pour qu'elle se concentre sur un seul problème en modifiant ce post . Fermé il y a 7 mois . Récemment, j'essaie d'utiliser Haskell dans certains …
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.