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.
Si les langages de programmation fonctionnelle ne peuvent enregistrer aucun état, comment font-ils des choses simples comme lire l'entrée d'un utilisateur? Comment «stockent-ils» l'entrée (ou stockent-ils des données d'ailleurs?) Par exemple: comment cette simple chose C se traduirait-elle en un langage de programmation fonctionnel comme Haskell? #include<stdio.h> int main() { …
En regardant à travers le Haskell Prelude, je vois une fonction const : const x _ = x Je n'arrive pas à trouver quoi que ce soit de pertinent concernant cette fonction. À quoi ça sert? Quelqu'un peut-il donner un exemple où cette fonction pourrait être utilisée?
Hackage propose plusieurs packages pour les transformateurs monades: mtl : bibliothèque de transformateurs Monad transformateurs : foncteur béton et transformateurs monades monads-fd : classes Monad, utilisant des dépendances fonctionnelles monads-tf : classes Monad, utilisant des familles de types monadLib : une collection de transformateurs monad . mtl-tf : bibliothèque de …
En lisant https://en.uncyclopedia.co/wiki/Haskell (et en ignorant tous les trucs "offensants"), je suis tombé sur le morceau de code obscurci suivant: fix$(<$>)<$>(:)<*>((<$>((:[{- thor's mother -}])<$>))(=<<)<$>(*)<$>(*2))$1 Lorsque j'exécute ce morceau de code dans ghci(après l'importation Data.Functionet Control.Applicative), ghciimprime la liste de toutes les puissances de 2. Comment fonctionne ce morceau de code?
Je travaille sur Écrivez-vous un schéma en 48 heures (je suis jusqu'à environ 85 heures) et je suis arrivé à la partie sur l' ajout de variables et d'affectations . Il y a un grand saut conceptuel dans ce chapitre, et j'aurais aimé que cela ait été fait en deux …
Quelqu'un peut-il me dire pourquoi le Haskell Prelude définit deux fonctions distinctes pour l'exponentiation (c'est ^-à- dire et **)? Je pensais que le système de typage était censé éliminer ce genre de duplication. Prelude> 2^2 4 Prelude> 4**0.5 2.0
Un exercice de programmation classique consiste à écrire un interpréteur Lisp / Scheme en Lisp / Scheme. La puissance de la langue complète peut être mise à profit pour produire un interprète pour un sous-ensemble de la langue. Existe-t-il un exercice similaire pour Haskell? Je voudrais implémenter un sous-ensemble de …
Dans mon récent travail avec Gibbs sampling, j'ai beaucoup utilisé le RVarqui, à mon avis, fournit une interface presque idéale pour la génération de nombres aléatoires. Malheureusement, je n'ai pas pu utiliser Repa en raison de l'incapacité d'utiliser des actions monadiques dans les cartes. Bien que les cartes clairement monadiques …
J'essaie de visualiser quelques systèmes physiques automatiques simples (tels que le pendule, les bras de robot, etc.) dans Haskell. Souvent, ces systèmes peuvent être décrits par des équations comme df/dt = c*f(t) + u(t) où u(t)représente une sorte de «contrôle intelligent». Ces systèmes semblent s'intégrer très bien dans le paradigme …
Nous savons tous (ou devrions savoir) que Haskell est paresseux par défaut. Rien n'est évalué tant qu'il n'a pas été évalué. Alors, quand faut-il évaluer quelque chose? Il y a des points où Haskell doit être strict. J'appelle ces «points de rigueur», bien que ce terme particulier ne soit pas …
J'ai généralement entendu dire que le code de production devrait éviter d'utiliser Lazy I / O. Ma question est: pourquoi? Est-il toujours acceptable d'utiliser la Lazy I / O en dehors de simplement jouer? Et qu'est-ce qui améliore les alternatives (par exemple les agents recenseurs)?
Ce morceau de code Haskell fonctionne beaucoup plus lentement avec -O, mais -One devrait pas être dangereux . Quelqu'un peut-il me dire ce qui s'est passé? Si cela compte, c'est une tentative de résoudre ce problème , et il utilise la recherche binaire et l'arborescence de segments persistants: import Control.Monad …
J'ai découvert la commande "time" sous Unix aujourd'hui et j'ai pensé l'utiliser pour vérifier la différence de temps d'exécution entre les fonctions récursives de queue et récursives normales dans Haskell. J'ai écrit les fonctions suivantes: --tail recursive fac :: (Integral a) => a -> a fac x = fac' x …
Fermé . Cette question est basée sur l'opinion . Il n'accepte pas les réponses actuellement. Vous souhaitez améliorer cette question? Mettez à jour la question afin de pouvoir y répondre avec des faits et des citations en éditant ce message . Fermé il y a 2 ans . Améliorez cette …
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.