Haskell - Mais sobre funções
Até agora, discutimos muitos tipos de funções Haskell e usamos diferentes maneiras de chamar essas funções. Neste capítulo, aprenderemos sobre algumas funções básicas que podem ser facilmente usadas em Haskell sem importar nenhuma classe especial de tipo. A maioria dessas funções faz parte de outras funções de ordem superior.
Função Principal
Headfunção funciona em uma lista. Ele retorna o primeiro argumento de entrada que é basicamente uma lista. No exemplo a seguir, estamos passando uma lista com 10 valores e estamos gerando o primeiro elemento dessa lista usando ohead função.
main = do
let x = [1..10]
putStrLn "Our list is:"
print (x)
putStrLn "The first element of the list is:"
print (head x)
Ele produzirá a seguinte saída -
Our list is:
[1,2,3,4,5,6,7,8,9,10]
The first element of the list is:
1
Função Tail
Tail é a função que complementa o headfunção. Leva umlistcomo entrada e produz a lista inteira sem a parte principal. Isso significa que otailfunção retorna a lista inteira sem o primeiro elemento. Dê uma olhada no seguinte exemplo -
main = do
let x = [1..10]
putStrLn "Our list is:"
print (x)
putStrLn "The tail of our list is:"
print (tail x)
Ele produzirá a seguinte saída -
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]
Última Função
Como o nome sugere, ele produz o último elemento da lista que é fornecido como entrada. Verifique o seguinte exemplo.
main = do
let x = [1..10]
putStrLn "Our list is:"
print (x)
putStrLn "The last element of our list is:"
print (last x)
Ele produzirá a seguinte saída -
Our list is:
[1,2,3,4,5,6,7,8,9,10]
The last element of our list is:
10
Função Init
Init funciona exatamente como o oposto de tailfunção. Ele recebe uma lista como argumento e retorna a lista inteira sem a última entrada.
main = do
let x = [1..10]
putStrLn "Our list is:"
print (x)
putStrLn "Our list without the last entry:"
print (init x)
Agora, observe sua saída -
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]
Função Nula
Null é uma função de verificação booleana que funciona em uma string e retorna True apenas quando a lista fornecida está vazia, caso contrário, ele retorna False. O código a seguir verifica se a lista fornecida está vazia ou não.
main = do
let x = [1..10]
putStrLn "Our list is:"
print (x)
putStrLn "Is our list empty?"
print (null x)
Ele produzirá a seguinte saída -
Our list is:
[1,2,3,4,5,6,7,8,9,10]
Is our list empty?
False
Função reversa
Ele funciona em uma entrada String e converte toda a entrada em ordem reversa e dá uma saída como resultado. Abaixo está a base de código para esta função.
main = do
let x = [1..10]
putStrLn "Our list is:"
print (x)
putStrLn "The list in Reverse Order is:"
print (reverse x)
Ele produzirá a seguinte saída -
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]
Função Comprimento
Esta função é usada para calcular o comprimento do listdado como um argumento. Dê uma olhada no seguinte exemplo -
main = do
let x = [1..10]
putStrLn "Our list is:"
print (x)
putStrLn "The length of this list is:"
print (length x)
Temos 10 elementos em nossa lista, portanto, nosso código produzirá 10 como saída.
Our list is:
[1,2,3,4,5,6,7,8,9,10]
The length of this list is:
10
Função
Takefunção é usada para criar uma sub-string de outra String. O código a seguir mostra como você pode usar a função take em Haskell -
main = print(take 5 ([1 .. 10]))
O código gera uma string contendo 5 elementos da lista fornecida -
[1,2,3,4,5]
Função de queda
Esta função também é usada para gerar uma string secundária. Funciona como o oposto dotakefunção. Observe o seguinte trecho de código -
main = print(drop 5 ([1 .. 10]))
O código remove os primeiros 5 elementos da lista fornecida e imprime os 5 elementos restantes. Ele produzirá a seguinte saída -
[6,7,8,9,10]
Função Máxima
Esta função é usada para encontrar o elemento com o valor máximo da lista fornecida. Vamos ver como usá-lo na prática -
main = do
let x = [1,45,565,1245,02,2]
putStrLn "The maximum value element of the list is:"
print (maximum x)
O trecho de código acima irá gerar a seguinte saída -
The maximum value element of the list is:
1245
Função Mínima
Esta função é usada para encontrar o elemento com o valor mínimo da lista fornecida. É exatamente o oposto domaximum função.
main = do
let x = [1,45,565,1245,02,2]
putStrLn "The minimum value element of the list is:"
print (minimum x)
A saída do código acima é -
The minimum value element of the list is:
1
Função Soma
Como o nome sugere, esta função retorna a soma de todos os elementos presentes na lista fornecida. O código a seguir pega uma lista de 5 elementos e retorna sua soma como saída.
main = do
let x = [1..5]
putStrLn "Our list is:"
print (x)
putStrLn "The summation of the list elements is:"
print (sum x)
Ele produzirá a seguinte saída -
Our list is:
[1,2,3,4,5]
The summation of the list elements is:
15
Função do Produto
Você pode usar esta função para multiplicar todos os elementos em uma lista e imprimir seu valor.
main = do
let x = [1..5]
putStrLn "Our list is:"
print (x)
putStrLn "The multiplication of the list elements is:"
print (product x)
Nosso código produzirá a seguinte saída -
Our list is:
[1,2,3,4,5]
The multiplication of the list elements is:
120
Função Elem
Esta função é usada para verificar se a lista fornecida contém um elemento específico ou não. Assim, ele retorna umtrue ou um false.
O código a seguir verifica se a lista de elementos fornecida contém o valor 786.
main = do
let x = [1,45,155,1785]
putStrLn "Our list is:"
print (x)
putStrLn "Does it contain 786?"
print (elem 786 (x))
Ele produzirá a seguinte saída -
Our list is:
[1,45,155,1785]
Does it contain 786?
False
Use o mesmo código para verificar se a lista fornecida contém o valor 1785 ou não.