aqui dejo el code
Código: Seleccionar todo
{-
Función: Split
Autor: Strup
Descripcion: dividir una cadena a partir del delimitador para retornarla en una lista de cadenas
Data: 15/03/2014 14:48
-}
split :: String -> String -> [String]
split xs ys = case xs of "" -> []
otherwise -> take(inStr xs ys) xs:split (drop((inStr xs ys)+length ys) xs) ys
inStr xs ys = case xs of "" -> 0
st@(_:xs) -> if length [True | (s,y) <- zip st ys, s == y] == length ys then inStr "" ys else 1+inStr xs ys
Código: Seleccionar todo
"ghci>" :load "Split.hs"
[1 of 1] Compiling Main ( Split.hs, interpreted )
Ok, modules loaded: Main.
"ghci>" split "Llego[Strup]el[Strup]capitan[Strup]salami" "[Strup]"
["Llego","el","capitan","salami"]
Como se puede observar yo mismo me codee la funcion instr para poder localizar el delimitador ya que en haskell por lo menos asta ahora no la e visto en ningun modulo, si os fijais es el mismo split que usamos para los stubs de los crypters de visual basic, Bueno espero les guste el code, saludos foro