J'essaie de créer une liste de chaînes en utilisant une certaine récursivité.Haskell - Concat une liste de chaînes
Fondamentalement, je veux prendre une partie d'une chaîne jusqu'à un certain point. Créer une liste à partir de cela et ensuite traiter le reste de la chaîne par la récursivité.
type DocName = FilePath
type Line = (Int,String)
type Document = [Line]
splitLines :: String -> Document
splitLines [] = []
splitLines str | length str == 0 = []
| otherwise = zip [0..(length listStr)] listStr
where
listStr = [getLine] ++ splitLines getRest
getLine = (takeWhile (/='\n') str)
getRest = (dropWhile (=='\n') (dropWhile (/='\n') str))
C'est ce que j'ai obtenu. Mais il ne fait que concaténer les cordes puisqu'elles sont elles-mêmes une liste de personnages. Mais je veux créer une liste de chaînes.
[ "test", "123"] si l'entrée était "test \ n123 \ n"
Merci
Vous voulez dire que '[(1, "test"), (2, "123")]' droite? 'Line' est un tuple, pas seulement une chaîne. – kennytm
oui mais im concentré sur "listStr = [getLine] ++ splitLines getRest" cette partie – Matt
Le titre de votre question est confus - vous n'essayez pas de concaténer des chaînes, vous voulez les séparer, ce qui est le contraire. – Amoss