Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You can create that Proc from implicit block on demand by calling `Proc.new` without a block.


At which point you eat the reification cost.

It's real easy to test too: just bench

  def a flag
    Proc.new if flag
    nil
  end
with the flag set to `true` or `false`. Note that the proc is never actually called or returned to a possible caller, the only difference is that one reifies the proc and the other one not.

You'll get roughly the same 5x difference (with `flag=false` being the fastest) as TFA notes.


Yes. But only when you actually need it (for example to store/pass it).


Note that this was actually the original way to do so. The &block argument format was added later.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: