From: Hal Fulton Date: 2005-02-08T10:54:47+09:00 Subject: Re: Delayed string interpolation Navindra Umanee wrote: > Hal Fulton wrote: > >> def interp(x,y) >> "The sum of #{x} and #{y} is #{x+y}" >> end >> >> str = interp(210,27) # "The sum of 210 and 27 is 237" > > > Unless I'm mistaken, this recomputes the whole string every time > interp is called. I wanted to compute the common parts of the string, > cache it somewhere, and then compute the rest in another context. > > Hence, a 2-step interpolation. Yes, I'm sure there are some efficiency concerns. I've never measured the performance in a case like this. I wonder if it would be worthwhile to expose the internal method which does interpolation? I've thought of this in the past, but never seriously enough for an RCR. I think that would be "prettier" than an explicit eval. It would, of course, either have to operate in the current binding or have a binding passed in. Hal