5 comments

[ 3.3 ms ] story [ 19.2 ms ] thread
It looks more like a degradation towards perl :-)
It seems to me that programmatic evolution is often like biological evolution -- namely, it moves from "simple but works," to "Wouldn't it be cool if..." :)
Honest feed back? How about this version:

  def fact(max=ARGV[0].to_i, i1=1, i2=1, i=1)
    i < max ? fact(max, i2, i1+i2, i+1) : (puts i1)
  end 
  fact()
This was the 2nd program I wrote in Ruby (I know it's recursive and therefore inefficient but my goal was to see how short I could make it not how efficient)
In my opinion, the "Newbie programmer" and the "Discovered ternary operators" are the clearest and simplest and can be understood by anybody who knows a C-like; the first one especially is the clearest to anyone.

I'm not a Ruby programmer, though--are there increasing performance gains as the function evolves?

That's brilliant! The inline bit looks clever! Gotta look into it.