1. Reverse
- Posted by Albert Brauneis <Dajawu36 at AOL.COM> Nov 28, 1998
- 379 views
- Last edited Nov 29, 1998
Hi, I wasn't really looking at the examples you all left but I made my own. I am sure somebody already gave it. I don't know how to time it so I don't know if it is fast. Here it is: function reverse(sequence rev) sequence back integer len len = length(rev) back = "" for junk = len to 1 by -1 do back = append(back,rev[junk]) end for return back end function sequence test test = reverse("Albert") printf(1,"It is %s", {test}) Thanks, Albert
2. Reverse
- Posted by Albert Brauneis <Dajawu36 at AOL.COM> Nov 28, 1998
- 364 views
- Last edited Nov 29, 1998
Ok here is my code for reverse, trimr (right trim), triml (left trim), trim (both sides). Can somebody either tell me the speed on this or tell me how to time it. I think I can time it with time() but not to sure: ---Start of coolfunc.ex--- function reverse(sequence rev) sequence back integer len len = length(rev) back = "" for junk = len to 1 by -1 do back = append(back,rev[junk]) end for return back end function function triml(sequence trim) integer len len = length(trim) for junk = 1 to len do if compare(trim[junk],' ') = 1 then return trim[junk..len] end if end for end function function trimr(sequence trim) integer len len = length(trim) for junk = len to 1 by -1 do if compare(trim[junk],' ') = 1 then return trim[1..junk] end if end for end function function trim(sequence trim) return trimr(triml(trim)) end function sequence test test = " Albert " printf(1,"Before trim ::%s::", {test}) test = trim(test) printf(1,"\nAfter trim ::%s::", {test}) printf(1,"\nBefore reverse %s", {test}) test = reverse(test) printf(1,"\nAfter reverse %s", {test}) ---End of coolfunc.ex---
3. Reverse
- Posted by Albert Brauneis <Dajawu36 at AOL.COM> Nov 28, 1998
- 377 views
- Last edited Nov 29, 1998
Sorry I am posting alot but I changed the append line in my reverse function and it did speed up a little. Here is the new code: ---start coolfunc.ex--- function reverse(sequence rev) sequence back integer len len = length(rev) back = "" for junk = len to 1 by -1 do back = back & rev[junk] end for return back end function function triml(sequence trim) integer len len = length(trim) for junk = 1 to len do if compare(trim[junk],' ') = 1 then return trim[junk..len] end if end for end function function trimr(sequence trim) integer len len = length(trim) for junk = len to 1 by -1 do if compare(trim[junk],' ') = 1 then return trim[1..junk] end if end for end function function trim(sequence trim) return trimr(triml(trim)) end function sequence test test = " Albert " printf(1,"Before trim ::%s::", {test}) test = trim(test) printf(1,"\nAfter trim ::%s::", {test}) printf(1,"\nBefore reverse %s", {test}) test = reverse(test) printf(1,"\nAfter reverse %s", {test}) ---end coolfunc.ex---
4. Reverse
- Posted by Mathew Hounsell <mat.hounsell at EXCITE.COM> Dec 01, 1998
- 393 views
Rob and Hawke, Speed isn't every thing. Remember what Rob said earlier. If the sequence is big you are going to use a lot of memory forcing Euphoria to use virtual memory which is much slower. And While Rob's latest one is faster than is other one it still needs that memory. You will have a second sequence of pointers. 24 + 4 * length(s) bytes of memory wasted. Actually Rob since Euphoria will only allocate pointer, unless it is a sequence of integers then you would probablely be better of writing it in C and do the pointer copying that way. Now play nicely. -------------------- Sincerely, Mathew Hounsell Mat.Hounsell at Excite.Com Brain Washing : "Strings are good. Strings are your friends. You want strings." _______________________________________________________ Get your free, private e-mail at http://mail.excite.com/