Function to print a diamond shape

monarch_dodra via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Apr 22 08:25:02 PDT 2014


On Tuesday, 22 April 2014 at 11:41:41 UTC, Jay Norwood wrote:
> Wow,  joiner is much slower than join.  Such a small choice can 
> make this big of a difference.  Not at all expected, since the 
> lazy calls, I thought, were considered to be more efficient.  
> This is with ldc2 -O2.

Yeah, that's because join actually works on "RoR, R", rather than 
"R, E". This means if you feed it a "string[], string", then it 
will actually iterate over individual *characters*. Not only 
that, but since you are using char[], it will decode them too.

"join" is faster for 2 reasons:
1) It detects you want to joins arrays, so it doesn't have to 
iterate over them: It just glues them "slice at once"
2) No UTF decoding.

I kind of wish we had a faster joiner, but I think it would have 
made the call ambiguous.


More information about the Digitalmars-d-learn mailing list