Haskell - Plus d'informations sur les fonctions

Jusqu'à présent, nous avons discuté de nombreux types de fonctions Haskell et utilisé différentes manières d'appeler ces fonctions. Dans ce chapitre, nous allons découvrir quelques fonctions de base qui peuvent être facilement utilisées dans Haskell sans importer de classe Type spéciale. La plupart de ces fonctions font partie d'autres fonctions d'ordre supérieur.

Fonction de la tête

HeadLa fonction fonctionne sur une liste. Il renvoie le premier argument d'entrée qui est essentiellement une liste. Dans l'exemple suivant, nous passons une liste avec 10 valeurs et nous générons le premier élément de cette liste en utilisant lehead fonction.

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "The first element of the list is:" 
   print (head x)

Il produira la sortie suivante -

Our list is: 
[1,2,3,4,5,6,7,8,9,10]
The first element of the list is:
1

Fonction de queue

Tail est la fonction qui complète le headfonction. Il faut unlistcomme entrée et donne la liste entière sans la partie de tête. Cela signifie que letailLa fonction renvoie la liste entière sans le premier élément. Jetez un œil à l'exemple suivant -

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "The tail of our list is:" 
   print (tail x)

Il produira la sortie suivante -

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The tail of our list is:
[2,3,4,5,6,7,8,9,10]

Dernière fonction

Comme son nom l'indique, il donne le dernier élément de la liste qui est fourni en entrée. Vérifiez l'exemple suivant.

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "The last element of our list is:" 
   print (last x)

Il produira la sortie suivante -

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The last element of our list is:
10

Fonction Init

Init fonctionne exactement comme l'opposé de tailfonction. Il prend une liste comme argument et renvoie la liste entière sans la dernière entrée.

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "Our list without the last entry:"  
   print (init x)

Maintenant, observez sa sortie -

Our list is:
[1,2,3,4,5,6,7,8,9,10]
Our list without the last entry:
[1,2,3,4,5,6,7,8,9]

Fonction nulle

Null est une fonction de vérification booléenne qui fonctionne sur une chaîne et retourne True uniquement lorsque la liste donnée est vide, sinon elle retourne False. Le code suivant vérifie si la liste fournie est vide ou non.

main = do 
   let x = [1..10]   
   putStrLn "Our list is:"  
   print (x) 
   putStrLn "Is our list empty?"  
   print (null x)

Il produira la sortie suivante -

Our list is:
[1,2,3,4,5,6,7,8,9,10]
Is our list empty?
False

Fonction inverse

Il fonctionne sur une entrée String et convertit toute l'entrée en ordre inverse et donne une sortie en conséquence. Voici la base de code pour cette fonction.

main = do 
   let x = [1..10]  
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The list in Reverse Order is:" 
   print (reverse x)

Il produira la sortie suivante -

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The list in Reverse Order is:
[10,9,8,7,6,5,4,3,2,1]

Fonction de longueur

Cette fonction permet de calculer la longueur du listdonné en argument. Jetez un œil à l'exemple suivant -

main = do 
   let x = [1..10]   
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The length of this list is:" 
   print (length x)

Nous avons 10 éléments dans notre liste, donc notre code donnera 10 en sortie.

Our list is:
[1,2,3,4,5,6,7,8,9,10]
The length of this list is:
10

Prendre la fonction

TakeLa fonction est utilisée pour créer une sous-chaîne à partir d'une autre chaîne. Le code suivant montre comment utiliser la fonction take dans Haskell -

main = print(take 5 ([1 .. 10]))

Le code génère une sous-chaîne contenant 5 éléments de la liste fournie -

[1,2,3,4,5]

Fonction Drop

Cette fonction est également utilisée pour générer une sous-chaîne. Il fonctionne comme l'opposé de latakefonction. Regardez le morceau de code suivant -

main = print(drop 5 ([1 .. 10]))

Le code supprime les 5 premiers éléments de la liste fournie et imprime les 5 éléments restants. Il produira la sortie suivante -

[6,7,8,9,10]

Fonction maximale

Cette fonction est utilisée pour trouver l'élément avec la valeur maximale dans la liste fournie. Voyons comment l'utiliser dans la pratique -

main = do 
   let x = [1,45,565,1245,02,2]   
   putStrLn "The maximum value element of the list is:"  
   print (maximum x)

Le morceau de code ci-dessus générera la sortie suivante -

The maximum value element of the list is:
1245

Fonction minimale

Cette fonction permet de trouver l'élément avec la valeur minimale dans la liste fournie. C'est juste l'opposé de lamaximum fonction.

main = do 
   let x = [1,45,565,1245,02,2]   
   putStrLn "The minimum value element of the list is:"  
   print (minimum x)

La sortie du code ci-dessus est -

The minimum value element of the list is:
1

Fonction de somme

Comme son nom l'indique, cette fonction renvoie la somme de tous les éléments présents dans la liste fournie. Le code suivant prend une liste de 5 éléments et renvoie leur somme en sortie.

main = do 
   let x = [1..5] 
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The summation of the list elements is:" 
   print (sum x)

Il produira la sortie suivante -

Our list is:
[1,2,3,4,5]
The summation of the list elements is:
15

Fonction du produit

Vous pouvez utiliser cette fonction pour multiplier tous les éléments d'une liste et imprimer sa valeur.

main = do 
   let x = [1..5] 
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "The multiplication of the list elements is:" 
   print (product x)

Notre code produira la sortie suivante -

Our list is:
[1,2,3,4,5]
The multiplication of the list elements is: 
120

Fonction Elem

Cette fonction permet de vérifier si la liste fournie contient un élément spécifique ou non. En conséquence, il renvoie soit untrue ou un false.

Le code suivant vérifie si la liste d'éléments fournie contient la valeur 786.

main = do 
   let x = [1,45,155,1785] 
   putStrLn "Our list is:" 
   print (x) 
   putStrLn "Does it contain 786?" 
   print (elem 786 (x))

Il produira la sortie suivante -

Our list is:
[1,45,155,1785]
Does it contain 786?
False

Utilisez le même code pour vérifier si la liste fournie contient la valeur 1785 ou non.