[Haskell-cafe] Re: Substring replacements (was: Differences inoptimisiation

Branimir Maksimovic bmaxa at hotmail.com
Sun Dec 11 17:13:17 EST 2005

>From: Daniel Fischer <daniel.is.fischer at web.de>
>To: "Branimir Maksimovic" <bmaxa at hotmail.com>
>CC: Haskell-Cafe at haskell.org
>Subject: Re: Substring replacements (was: Differences inoptimisiation
>Date: Sun, 11 Dec 2005 18:12:12 +0100
>Prelude SearchRep> searchReplace "aabaabba" "iii" "aabaabaabbaa"

I've solved this case

>Prelude SearchRep> searchReplace "abaaba" "-" "abaaabaaba"

This one is cleaned up, but searching have to be adjusted for false
positive patterns.
So I need some more time, as this isn't quick fix.

>Seemingly, your algorithm assumes that the last component of the
>result of search'' is the beginning of the searched for pattern reversed --
>which needn't be.

Yes. That is the problem. Now I have to compare if it fits with searched

>One comment on style (I like it in general):
>IMHO, the use of nested pairs and combinations of fst, snd is not very
>readable, using triples/quadruples and providing your own 
>(e.g. fst3, thd4) would improve that -- it might have an impact on
>performance, though, that would require a test or an answer from somebody
>more knowledgeable. And -- I'm not sure whether that is indeed so -- if you
>have an argument pattern (x:xs) which may be directly returned, as in
>fun (x:xs) | even x     = ([x],xs)
>                | otherwise = ([],x:xs)
>the list would have to be reconstructed from its head and tail, which could 
>avoided by using an as-pattern
>fun xxs@(x:xs)
>     | even x      = ([x],xs)
>     | otherwise  = ([],xxs),
>however, that wouldn't be significant unless it happens really often and 
>compiler might optimise it away anyway.

Thank you! This really helps . I 'll clean up my mess a bit.

Greetings, Bane.

Express yourself instantly with MSN Messenger! Download today it's FREE! 

More information about the Haskell-Cafe mailing list