Saludos foro, viendo que mi anterior split en haskell solo splitaba a partir de chars decidi entonces hacerme uno como dios manda (dividir mediante un delimitador del tipo string)
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
Muestra:

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"]
en pastebin: [Enlace externo eliminado para invitados]

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
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
Filisko escribió:jajaja, qué gracioso ver el syntaxhighlighter en pastebin de Haskell ^^ saludos man, buen código!!
jajaja si que queda chulo si , un saludo
Abolición para el torneo del toro de la vega. Death to the murderers of bulls.
Responder

Volver a “Fuentes”