Write a Ruby program that prints out the numbers 1 to 100, one number
per line. The program must be less than 10 characters long.
Good luck!
Wyatt G.
Write a Ruby program that prints out the numbers 1 to 100, one number
per line. The program must be less than 10 characters long.
Good luck!
Wyatt G.
On Jan 30, 9:14 pm, Wyatt G. [email protected] wrote:
Write a Ruby program that prints out the numbers 1 to 100, one number
per line. The program must be less than 10 characters long.Good luck!
Wyatt G.
Lol whats this all about?
Well, just for the crack…
p *1…100
Wyatt G. wrote:
Write a Ruby program that prints out the numbers 1 to 100, one number
per line. The program must be less than 10 characters long.
Does this have some kind of spoiler-period like the ruby quiz? Well,
since it
didn’t say so in the OP and anyone who wants to solve it on his own can
just
not read the replies until he’s done, here it goes:
p *1…100
or one char shorter:
p *1…?d
I was thinking of p *1…100
I’m am truly amazed that this could be squeezed down even further to p
*1…?d
That leads me to wonder…is it possible to squeeze this program down
into 7 characters?
On Jan 30, 4:27 pm, Sebastian H. [email protected]
On [Thu, 31.01.2008 06:24], Lee J. wrote:
p *1…100
Would you be so gentle and explain this piece of code to me?
I know things like p “a”*10, but I dont really understand your code.
I know that 1…100 describes a range, but… isn’t * a binary operator?
I don’t really see the first/second operand
Dominik H. wrote:
p *1…100
Would you be so gentle and explain this piece of code to me?
[…] isn’t * a binary operator? I
HTH,
Sebastian
On [Thu, 31.01.2008 06:42], Sebastian H. wrote:
foo(*[:la,:li,:lu]) becomes foo(:la,:li,:lu)
p *1…5 becomes p 1,2,3,4,5HTH,
SebastianJabber: [email protected]
ICQ: 205544826
Ah, yeah of course… I totally forgot about that.
If it had been puts(*[1,2,3…]) I wouldnt have asked that question
Actually, I’m using this feature a lot in my codes. But didn’t know it
takes any object,
which responds to #to_a
Thank you
(Okay, I forgot, that puts can take multiple arguments, too. Sometimes,
Ruby is just too easy)
This is the problem with writing “clever” code…it’s unreadable!
The * operator used here is a unary operator that is used to convert
an array into a list of arguments. For example, say you had this
method:
def say(a, b, c)
puts a
puts b
puts c
end
If you had this array:
arr = [1, 2, 3]
As a convenience, Ruby lets you pass each element of the array as a
separate argument into the method by using the * operator:
say(*arr)
In the case of p *1…100, the trick seems to work for a range, too.
On Jan 30, 9:36 pm, Dominik H. [email protected] wrote:
Would you be so gentle and explain this piece of code to me?
I know things like p “a”*10, but I dont really understand your code.
I know that 1…100 describes a range, but… isn’t * a binary operator? I don’t really see the first/second operand
Looks like Sebastian H. explained it before I could get
there. At least I got my post in second before him, hehe…
Well said, Sebastian.
Regards,
Lee
On Jan 30, 6:01 pm, Lionel B. [email protected]
wrote:
must all be printed out on the output but not one on each line.
Still stuck with 8 chars :-/ I can’t think of any other string or
numeric operator which can generate lots of data to print with little
input right now.Lionel
Wow, that’s pretty creative, though!
Wyatt G. wrote:
I was thinking of p *1…100
I’m am truly amazed that this could be squeezed down even further to p
*1…?dThat leads me to wonder…is it possible to squeeze this program down
into 7 characters?
I tried another approach by relaxing your conditions a bit : the number
must all be printed out on the output but not one on each line.
p 2**975
works
ie the “output” verifies :
!(1…100).any? { |v| output !~ /#{v}/ }
Unfortunately there’s no x**y solution to this condition where x and y
use less that 4 characters.
Still stuck with 8 chars :-/ I can’t think of any other string or
numeric operator which can generate lots of data to print with little
input right now.
Lionel
On Jan 30, 2008 1:35 PM, Wyatt G. [email protected] wrote:
I was thinking of p *1…100
I’m am truly amazed that this could be squeezed down even further to p
*1…?dThat leads me to wonder…is it possible to squeeze this program down
into 7 characters?
How about 0 characters?
ruby -p -e ‘’ < numbers
The ruby program is zero characters. You just have to set up the
‘numbers’ file ahead of time.
Judson
Wyatt G. wrote:
Write a Ruby program that prints out the numbers 1 to 100, one number
per line. The program must be less than 10 characters long.Good luck!
Wyatt G.
For more golf fun see: http://codegolf.com
On Jan 30, 2008, at 4:14 PM, Wyatt G. wrote:
Write a Ruby program that prints out the numbers 1 to 100, one number
per line. The program must be less than 10 characters long.
p *1…100
Tadah!
I had to think about it for moment, though
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs