Descobrindo o comprimento de uma string

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: