
From: Daniel Fischer
To: "Branimir Maksimovic" CC: Haskell-Cafe@haskell.org Subject: Re: Substring replacements (was: Differences inoptimisiation Date: Sun, 11 Dec 2005 18:12:12 +0100 Unfortunately: Prelude SearchRep> searchReplace "aabaabba" "iii" "aabaabaabbaa" "aabaabaabb"
I've solved this case
Prelude SearchRep> searchReplace "abaaba" "-" "abaaabaaba" "abaaabaab"
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 string.
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 accessor-functions (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 be 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 the 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! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/