[REBOL] Re: New competition: do you accept the challenge?! :-)
From: kpeters:otaksoft at: 7-Nov-2007 11:03
Whoa - that was horrible - let's try this again:
Steeve's implementation clocks in at 5.8 seconds on one of my machines.
I had read somewhere (maybe on rapideuphoria.com?) that Euphoria is supposed
to have very fast string processing for an interpreted language (I remember a
claim that its version of awk beat the original awk written in C hands down).
So I asked the folks over there for a version in compliance with Alessandro's
(on the same machine it is about 1.5 seconds faster than Steeve's):
-- start of program --
sequence str
sequence finale
atom st,et
puts(1,"START...\n")
st = time()
finale = ""
for i=1 to 10000 do
-- Initialize the temporary string
str = ""
for j = 1 to 500 do
-- append the string repesentations of i and j
str &= sprintf("%d,%d-", {i,j})
end for
-- Append the first four characters of the temp str to the result
-- java = zero based
finale &= str[2..5]
end for
et = time()
puts(1, "COMPLETED!!!\n")
printf(1, "%s\n%d\n%f seconds\n", {finale, length(finale), et-st})
-- end of program --
They seem to have a few aces up their sleeves with their sequence
implementation - it looks deceivingly simple, but packs a punch.
Haven't tried their To-C translator which should give another big boost.
I also don't know if the code above could be optimized any more
without violating Alessandro's stipulations...
Cheers,
Kai