Soy nuevo en Haskell, yo estaba tratando de escribir una función de cadena divididaHaskell comprensión flujo
delim = '|'
splitStr::[Char]->[[Char]]->[[Char]]
splitStr list y
| sL > 0 && sL < length(list) = splitStr (drop (sL+1) list) [subList]++y
| otherwise = [subList]++y
where
subList = takeWhile (\x -> x /= delim) list
sL = length(subList)
split s = splitStr s []
Sin embargo, el código anterior siempre devuelve la cadena en orden inverso
Main> split "foo|bar|java|python"
["python","java","bar","foo"]
cambiar de y++[subList]
a [subList]++y
todavía da el mismo resultado. Sé que hay mejores formas de hacerlo, pero quiero saber por qué está sucediendo lo anterior.
¡Dios mío! brillante :) – Rnet