diff options
Diffstat (limited to 'sample')
-rw-r--r-- | sample/eval.rb | 15 | ||||
-rw-r--r-- | sample/fact.rb | 5 |
2 files changed, 9 insertions, 11 deletions
diff --git a/sample/eval.rb b/sample/eval.rb index 8b582b0fdc..90b839e873 100644 --- a/sample/eval.rb +++ b/sample/eval.rb @@ -1,13 +1,13 @@ line = '' -indent=0 +indent = 0 $stdout.sync = TRUE print "ruby> " -while TRUE +loop do l = gets - unless l - break if line == '' + if l.nil? + break if line.empty? else - line = line + l + line += l if l =~ /,\s*$/ print "ruby| " next @@ -32,10 +32,9 @@ while TRUE begin print eval(line).inspect, "\n" rescue ScriptError, StandardError - $! = 'exception raised' unless $! - print "ERR: ", $!, "\n" + printf "ERR: %s\n", $! || 'exception raised' end - break if not l + break if l.nil? line = '' print "ruby> " end diff --git a/sample/fact.rb b/sample/fact.rb index 1462a6923a..d8147a40f1 100644 --- a/sample/fact.rb +++ b/sample/fact.rb @@ -1,9 +1,8 @@ def fact(n) return 1 if n == 0 f = 1 - while n>0 - f *= n - n -= 1 + n.downto(1) do |i| + f *= i end return f end |