Haskell:
Descobrindo o comprimento de uma string
How to:
O Haskell possui uma função integrada chamada length
que retorna o comprimento de uma lista, incluindo strings que, em Haskell, são listas de caracteres. Veja só:
main :: IO ()
main = do
let minhaString = "Olá, Haskell!"
print $ length minhaString
Saída esperada:
13
Deep Dive
Historicamente, em Haskell, a função length
é parte do Prelude, um módulo importado por padrão. A length
funciona contando cada elemento em uma estrutura de dados até que todos sejam contabilizados.
Existem alternativas. Por exemplo, você pode usar recursão para criar sua própria função de comprimento:
comprimento :: [a] -> Int
comprimento [] = 0
comprimento (_:xs) = 1 + comprimento xs
Há também um pacote chamado Data.Text
para trabalhar com texto Unicode de maneira mais eficiente do que com Strings clássicas. Em Data.Text
, você usaria a função length
do mesmo jeito, mas ela seria mais performática.
import qualified Data.Text as T
main :: IO ()
main = do
let minhaString = T.pack "Olá, Haskell!"
print $ T.length minhaString
See Also
Para explorar mais, confira:
- Haskell Documentation for Lists
- Data.Text package on Hackage
- Learn You a Haskell for Great Good! - Um guia introdutório para Haskell com uma abordagem divertida.