Haskell : Fonctions pour nombres complexes

Exercices Corriges en Haskell : Fonctions pour nombres complexes

On se propose d’écrire des fonctions manipulant des List de NombreComplexe .
1- Donner le code Haskell permettant de créer dans le type approprié, la liste suivante : [2, 1+4i, 5-i, -8i, 9i+2]

2- Ecrire une fonction somme qui additionne tous les nombres complexes d’une liste donnée

3- Utiliser la fonction filter_ pour écrire une fonction imaginairesPurs qui retourne la liste des nombres complexes imaginaires purs d’une liste donnée

4- Ecrire une fonction carres qui élève au carré chacun des nombres complexes d’une liste donnée

5- Ecrire une fonction carreElem qui prend en entrées, une liste donnée et un indice ind puis retourne le carré du nombre complexe d’indice ind.

Haskell pandacodeur

Correction :

1- Le code Haskell pour créer la liste [2, 1+4i, 5-i, -8i, 9i+2] est le suivant :

import Data.Complex

liste = [2, 1:+4, 5:-1, 0:-8, 0:+9:+2]

2- Voici une fonction Haskell qui additionne tous les nombres complexes d'une liste donnée :

import Data.Complex

somme :: [Complex Double] -> Complex Double

somme [] = 0

somme (x:xs) = x + somme xs

3- Voici une fonction Haskell qui utilise la fonction filter_ pour retourner la liste des nombres complexes imaginaires purs d'une liste donnée :

import Data.Complex

imaginairesPurs :: [Complex Double] -> [Complex Double]

imaginairesPurs xs = filter_ (\x -> realPart x == 0) xs

4- Voici une fonction Haskell qui élève au carré chacun des nombres complexes d'une liste donnée :

import Data.Complex

carres :: [Complex Double] -> [Complex Double]

carres xs = map_ (^2) xs

5- Voici une fonction Haskell qui prend en entrée une liste donnée et un indice ind, puis retourne le carré du nombre complexe d'indice ind :

import Data.Complex

carreElem :: [Complex Double] -> Int -> Complex Double

carreElem xs ind = (xs !! ind) ^ 2

Si vous avez trouvé les exercices corrigés en Haskell de JoëlYk intéressants et utiles, pourquoi ne pas les partager avec d'autres personnes qui pourraient également en bénéficier ? Partagez ce lien sur les réseaux sociaux ou envoyez-le à vos amis et collègues. Vous pourriez aider quelqu'un à améliorer ses compétences en programmation ou à trouver des solutions à des problèmes complexes. N'oubliez pas que la connaissance doit être partagée pour grandir. Merci pour votre soutien et votre partage !

Contact WhatsApp : +237 658395978 | Réaliser Par Joël_Yk

  • Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam