Ask a Question related to Ruby, Design and Development.
-
Fred Werne #1
"days=30-2.if(month==2)" a helpfull method, may be
Hi!
Ruby is great. My English is not good enough to describe it.
(I'm a Newbee, of course.)
I guess a (may be) helpfull method for the class Numeric:
With
------------------------------------
| class Numeric |
| def if(cond) |
| cond ? self : 0 |
| end |
| end |
------------------------------------
it is possible to add Numbers conditionally.
For example:
# -------------------------------------------------------------
# | |
# | [true,false].each { |leapyear| |
# | print((leapyear ? "" :"Kein "),"leapyear\n") |
# | 1.upto(12) { |n| |
# | print(n, "\t", 30 + |
# | ( n - 7.5 ).abs.ceil % 2 - |
# | (leapyear ? 1 : 2).if( n==2), |
# | "\n") |
# | } |
# | } |
# | |
# -------------------------------------------------------------
What do you think? Trivial?
Or dangerous? Because 3 * 4.if(false) --> 0 instead of 3
Perhaps better:
def add_sub_if(cond) cond ? self : 0 end
def mul_div_if(cond) cond ? self : 1 end
Fred from Wuppertal, Germany
--
I'm glad, if you correct my poor English.
Fred Werne Guest
-
Can't locate object method "newFromJpeg" via package "GD::Image"
Hi. I'm trying to execute this Perl simple script: -------- #!/usr/bin/perl use GD; my $srcimage = GD::Image->newFromJpeg("image_news.jpg");... -
Can't locate object method "blocking" via package "IO::Handle"
I am receiving the error message: Can't locate object method "blocking" via package "IO::Handle" at... -
Can't locate object method "new" via package "Net::SMTP"
I'm attempting to use the line: $smtp = Net::SMTP->new("mailhost.myisp.co.uk"); however it generates the error message: Can't locate object... -
Can't locate object method "get" via package "LWP::UserAgent"
#!/usr/bin/perl use strict; use URI; #use HTTP::Request::Common qw(GET); use LWP; #use HTTP::Response; my $browser = LWP::UserAgent->new;... -
Can't not locate object method "isadmin" via package "Noc1"
Hello all, I just added a new method called isadmin to existing and working module Noc1.pm And use this new added method in my index.html... -
Simon Strandgaard #2
Re: "days=30-2.if(month==2)" a helpfull method, may be
On Tue, 04 Nov 2003 20:48:13 +0100, Fred Werne wrote:
Welcome to Ruby.. your english is flawless so far :-)> Ruby is great. My English is not good enough to describe it.
> (I'm a Newbee, of course.)
[snip]You mix computation and presentation. I prefer separating these> What do you think? Trivial?
responsibilities from each other.
What your suggest reminds me of machine code.. hmmm.> Or dangerous? Because 3 * 4.if(false) --> 0 instead of 3
>
> Perhaps better:
> def add_sub_if(cond) cond ? self : 0 end
> def mul_div_if(cond) cond ? self : 1 end
I made some modifications to your program (separated computation from
presentation :-)
--
Simon Strandgaard
server> ruby a.rb
month normalyear leapyear
1 31 31
2 28 29
3 31 31
4 30 30
5 31 31
6 30 30
7 31 31
8 31 31
9 30 30
10 31 31
11 30 30
12 31 31
server> expand -t2 a.rb
class Numeric
def if(cond)
cond ? self : 0
end
end
table = [false, true].map{ |leapyear|
screw = leapyear ? 1 : 2
(1..12).to_a.map{|n|
30 + (n - 7.5).abs.ceil % 2 - screw.if(n == 2)
}
}
puts "month normalyear leapyear"
table[0].zip(table[1]).each_with_index{|(normal, leap), month|
print "%2d %2d %2d\n" % [month+1, normal, leap]
}
server>
Simon Strandgaard Guest
-
Simon Strandgaard #3
Re: "days=30-2.if(month==2)" a helpfull method, may be
On Tue, 04 Nov 2003 22:43:58 +0100, Simon Strandgaard wrote:
table.transpose.each_with_index{|(normal, leap), month|> puts "month normalyear leapyear"
> table[0].zip(table[1]).each_with_index{|(normal, leap), month|
I should mention that Array#transpose can be used here :-)
> print "%2d %2d %2d\n" % [month+1, normal, leap]
> }
--
Simon Strandgaard
Simon Strandgaard Guest



Reply With Quote

