On Jul 28, 5:52 ¨Âí¬ ÒéãèáòäÏîÒáéìó
<RichardDummyMailbox58... / USComputerGurus.com> wrote:
> On Jul 28, 3:34 ¨Âí¬ ¢Íéãèáåì ×® Òùäåò¢ ¼ßí÷òù®®®À÷ïòìäîåô®áôô®îåô> wrote:
>
>
>
> > RichardOnRails wrote:
> > > On Jul 27, 12:36 pm, Prateek Agarwal <prateek.a... / gmail.com> wrote:
> > >> I am new to Ruby and am still learning some of the basic stuff.
> > >> What's the method name for the Power operation(as in 'a' to the power
> > >> 'b')?
> > >> --
> > >> Posted viahttp://www.ruby-forum.com/.
>
> > > Whoops.  ¨Â æïòçïô ôï ðáóôéî ôèðòïçòá¨óïòòù©¬  ¨Âèéãè æïììï÷óº
>
> > > =begin  Note this comments out all lines until the =end
> > > def power(a,b)
> > > result=a**b # "a" should be "a.chomp.to_1"; ditto "b";
> > > # the "chomp" removes the newline which the user presses
> > > # "result" is unnecessary
> > > result.to_i # does nothing
> > > return result # unnecessary:
> > > # Since we've eliminated everything else,he method
> > > # has only one statement, i.e. the expression
> > > # a ** b with the replacements suggested above
> > > # Ruby returns the last statement's value
> > > end
>
> > > puts "a=" # use printf rather than puts (which appends a newline)
> > > a=gets
> > > a.to_i  does nothing; "a" does not get change, and the
> > > result
> > > # is discarded
> > > puts "b=" # same as "a"
> > > b=gets
> > > b.to_i # ditto as for "a"
> > > c=power(a,b)  numeric result assigned to c, probably an integerut
> > > # not necessarily
> > > puts "c=#{c}" # These final two lines might be more elegantly
> > > # written in Ruby as suggested below
> > > =end
>
> > > # The result of all these changes are the following 8 lines
> > > # (plus blank lines); save them, say, as: Test.rb
> > > # and run them as:  ¨ÂõâÔåóô®ò>
> > > def power(a,b)
> > > a.chomp.to_i**b.chomp.to_i
> > > end
>
> > > printf "a="
> > > a = gets
> > > print "b="
> > > b = gets
> > > puts "%d**%d = %d" % [a, b, power(a,b)]
>
> > As an "improvement" to your code I would take the chomp and to_i out of
> > the power function to make it more generic and add them after the gets.
>
> Hi Michael,
>
> Your point is well taken.
>
> I did that for a newbie to point the stuff that's needs to be done to
> get things working as he intends.  ¨Âå§îïìéëåìù ôï ìïïë õð ¢ôïßé¢
> to learn all its machinations.
>
> In fact, there's one more that I would have thrown in, had I
> remembered it: strip.
>
> I do that in string-handlers I write:
> 1. in part, to remind myself what to_i would do for me automatically
> 2. in part, to guarantee that that stuff gets done even if new
> versions of Ruby eliminate some helpful feature.
> 3. in part, because I might decide to extend a program using the input
> string as though it contained only the digits that to_i revealed,
> forgetting that a lot of "baggage" had been removed.
>
> Perhaps having taught Computer Technology at AU in DC for a decade
> gives me a different perspective than production program with a lean-
> and-mean code perspective.
>
> Do I make any sense?
>
> Best wishes,
> Richard

Hey Michael,

After posting my reply to you,  I re-read you post and realized I
misinterpreted it.  I favor putting all that baggage in the OP's
"power" routine rather than having to remember that stuff when writing
each invocation of "power".

Does that make any sense?

Best wishes,
Richard