• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

avernoro

a função lines ?

3 mensagens neste tópico

Alguém me pode dizer como é que se faz a função lines pré definida no prelude do haskell.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

entretanto já descobri aqui fica então:

lines :: String -> [string]
lines [] = []
lines s = (fst (plinhas s): lines (snd (plinhas s)))

plinhas :: String -> (String, String)
plinhas [] = ([], [])
plinhas (s: ss) | s == '\n' = ([], ss)
                      | otherwise = (s:a, b)
    where (a, b) = plinhas ss

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

fica aqui uma definição alternativa...

foldr (\x r -> if x == '\n' then "":r else ((head r) ++ [x]) : (tail r)) [""]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora