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 fais du développement en F # depuis un moment et j'aime ça. Cependant, un mot à la mode dont je sais qu'il n'existe pas en F # est celui des types de type supérieur. J'ai lu de la documentation sur les types plus élevés et je pense comprendre leur …
J'étais un peu confus par la documentation de fix(même si je pense comprendre ce qu'il est censé faire maintenant), alors j'ai regardé le code source. Cela m'a laissé plus confus: fix :: (a -> a) -> a fix f = let x = f x in x Comment cela renvoie-t-il …
J'ai récemment terminé un cours universitaire qui présentait Haskell et Agda (un langage de programmation fonctionnel typé dépendant), et je me demandais s'il était possible de remplacer le calcul lambda dans ces derniers par la logique combinatoire. Avec Haskell, cela semble possible en utilisant les combinateurs S et K, ce …
Lors de la compilation de mon application Haskell avec l' -Walloption, GHC se plaint des instances orphelines, par exemple: Publisher.hs:45:9: Warning: orphan instance: instance ToSElem Result La classe de type ToSElemn'est pas la mienne, elle est définie par HStringTemplate . Maintenant, je sais comment résoudre ce problème (déplacez la déclaration …
J'essaie de comprendre ce que fait l'opérateur point dans ce code Haskell: sumEuler = sum . (map euler) . mkList Le code source complet est ci-dessous. Ma compréhension L'opérateur point prend les deux fonctions sumet le résultat de map euleret le résultat de mkListcomme entrée. Mais, sumn'est-ce pas une fonction, …
Dans GHCi: Prelude> error (error "") *** Exception: Prelude> (error . error) "" *** Exception: *** Exception: Pourquoi le premier n'est-il pas une exception imbriquée?
Comment puis-je obtenir esqueleto pour générer une chaîne SQL à partir d'une frominstruction? La documentation de toRawSqldit que "vous pouvez simplement activer la journalisation des requêtes de persistant". J'ai essayé toutes les formes possibles MonadLoggerque je pouvais comprendre, mais cela n'a jamais imprimé de SQL. La même documentation dit également …
Donné : data Foo = FooString String … class Fooable a where --(is this a good way to name this?) toFoo :: a -> Foo Je veux créer Stringune instance de Fooable: instance Fooable String where toFoo = FooString GHC se plaint alors: Illegal instance declaration for `Fooable String' (All …
J'ai écrit ce petit morceau de Haskell pour comprendre comment GHC prouve que pour les nombres naturels, vous ne pouvez que diviser par deux les nombres pairs: {-# LANGUAGE DataKinds, GADTs, KindSignatures, TypeFamilies #-} module Nat where data Nat = Z | S Nat data Parity = Even | Odd …
Selon ma compréhension, les fonctions partielles sont des fonctions que nous obtenons en passant moins de paramètres à une fonction que prévu. Par exemple, si cela était directement valide en Python: >>> def add(x,y): ... return x+y ... >>> new_function = add(1) >>> new_function(2) 3 Dans l'extrait ci-dessus, new_functionest une …
Je travaille actuellement sur un interpréteur simple pour un langage de programmation et j'ai un type de données comme celui-ci: data Expr = Variable String | Number Int | Add [Expr] | Sub Expr Expr Et j'ai de nombreuses fonctions qui font des choses simples comme: -- Substitute a value …
J'ai rencontré un petit problème esthétique dans mon projet musical et cela me dérange depuis un certain temps. J'ai un type data Key = C | D | ...et je peux construire un à Scalepartir d'un Keyet d'un Mode. Le fait la Modedistinction entre, par exemple, une échelle majeure et …
Dans le module, System.Infoje vois ces fonctions: os :: String arch :: String compilerName :: String compilerVersion :: Version Pourquoi n'y en a-t-il pas IO? Ils accèdent au système ... Je me trompe? Mon attente était quelque chose comme: os :: IO String arch :: IO String compilerName :: IO …
Supposons que j'ai un paramètre qui existe uniquement pour le bénéfice du système de type, par exemple comme dans ce petit programme: {-# LANGUAGE GADTs #-} module Main where import Data.Proxy import Data.List data MyPoly where MyConstr :: Proxy a -> a -> (Proxy a -> a -> Int -> …
J'apprends les candidats de Haskell. Il me semble (je me trompe probablement) que la purefonction n'est pas vraiment nécessaire, par exemple: pure (+) <*> [1,2,3] <*> [3,4,5] peut être écrit comme (+) <$> [1,2,3] <*> [3,4,5] Quelqu'un peut-il expliquer les avantages de la purefonction par rapport à un mappage explicite …
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.