Hi,

I find myself to use the following idiom frequently.

def foo i
  return @cache[i] if @cache[i]
  @cache[i] = some_method_that_takes_long_time(i)
end

I like the post-modifying if statement.
But I feel uncomfortable with calling @cache[i] twice.

I wish this worked.
return v if v = @cache[i] #=>  undefined local variable or method `v'

This works but it's long.
if v = @cache[i]
  return v
end

Maybe this is a compromise.
if v = @cache[i] then return v end

I want "return statement" to stand out.
Post-modification looks better for that.
So I call @cache[i] twice.

How do you do it?

Sam