ANN: Teach yourself Ruby - the hard way!

A frequent question from Ruby newcomers is “Okay, I’ve read the
tutorials - now what?”. To that end, I’m putting together a series of
tutorials, each of which leads the student step by step through the
construction of a complete ruby program. There are no answers and no
explanations provided - rather, each question is followed by a hint
containing relevant topics to be looked up in the Pickaxe, on Google,
etc.

The entry-level program is an arithmetic tutor; the reader is assumed
to have worked their way through Chris P.'s tutorial, and have a
copy of the docs handy. (Later programs will assume that the reader
has done the previous ones). Here’s the first, tentative draft -
comments and suggestions welcomed.

http://zem.novylen.net/ruby/tutorial/arithmetic-quiz/arith.html

martin

On Sat, Feb 23, 2008 at 6:44 PM, Martin DeMello
[email protected] wrote:

copy of the docs handy. (Later programs will assume that the reader
has done the previous ones). Here’s the first, tentative draft -
comments and suggestions welcomed.

http://zem.novylen.net/ruby/tutorial/arithmetic-quiz/arith.html

Good work, but may i point out that ‘if’ is no method?

^ manveru

On Sat, Feb 23, 2008 at 1:56 AM, Michael F.
[email protected] wrote:

http://zem.novylen.net/ruby/tutorial/arithmetic-quiz/arith.html

Good work, but may i point out that ‘if’ is no method?

Yeah, right now I’m using # as a placeholder for a css class that will
cover both methods and keywords - basically, things to look up
directly in the documentation/pickaxe index, rather than more general
concepts to google for.

martin

On Sat, Feb 23, 2008 at 10:44 AM, Martin DeMello
[email protected] wrote:

copy of the docs handy. (Later programs will assume that the reader
has done the previous ones). Here’s the first, tentative draft -
comments and suggestions welcomed.

http://zem.novylen.net/ruby/tutorial/arithmetic-quiz/arith.html

martin

Nice work Martin, I suggest however that you do a
gsub(“function”,“method”) on your text, there are just no functions in
Ruby.
What do you think?
Cheers
Robert


http://ruby-smalltalk.blogspot.com/


Whereof one cannot speak, thereof one must be silent.
Ludwig Wittgenstein

Nice work, Martin :wink:

Thanks for putting in the time and effort for that Martin.
I am very much a new to Ruby and found that Chris uses version 1.8.2
version of Ruby which has given me a few problems as the instructions
in Chriss book dont correspond to the latest (186.25?) version I
have and it seems 1.8.2 is not now available. Guys on the forum have
been very helpful with their suggestions but I was a bit concerned at
failing at the very first prog I started ;-(.
I shall persevere. Ill have to do now Ive just enrolled on the
online Ruby course run by Satish.
Cheers
Steve

On Sat, Feb 23, 2008 at 3:44 AM, Robert D. [email protected]
wrote:

Nice work Martin, I suggest however that you do a
gsub(“function”,“method”) on your text, there are just no functions in
Ruby.
What do you think?

I did think about that, and deliberately decided to go with
‘function’, since from a newbie perspective toplevel methods are
functions.

Pros: Clear, conceptually simple to understand, a useful and
for-the-moment accurate model of what’s happening
Cons: Technically incorrect, but to explain the difference would delve
into ruby’s object model a bit too soon.

martin

On Sat, Feb 23, 2008 at 9:59 PM, Martin DeMello
[email protected] wrote:

Pros: Clear, conceptually simple to understand, a useful and
for-the-moment accurate model of what’s happening
Cons: Technically incorrect, but to explain the difference would delve
into ruby’s object model a bit too soon.

martin

Ok I see, I thought it was more an oversight, sorry for wasting your
time
R.


http://ruby-smalltalk.blogspot.com/


Whereof one cannot speak, thereof one must be silent.
Ludwig Wittgenstein

Robert D. wrote:

The entry-level program is an arithmetic tutor; the reader is assumed

Nice work Martin, I suggest however that you do a
gsub(“function”,“method”) on your text, there are just no functions in
Ruby.
What do you think?
Cheers
Robert

$ grep function .h
ruby.h:void rb_define_module_function _((VALUE,const
char
,VALUE()(ANYARGS),int));
ruby.h:void rb_define_global_function _((const
char
,VALUE(*)(ANYARGS),int));

It looks like the functions in the tutorial are the global kind.

Dunno if that term is deprecated and used only for historical reasons,
though.

On Sun, Feb 24, 2008 at 05:59:46AM +0900, Martin DeMello wrote:

Pros: Clear, conceptually simple to understand, a useful and
for-the-moment accurate model of what’s happening
Cons: Technically incorrect, but to explain the difference would delve
into ruby’s object model a bit too soon.

There’s a middle road: Mention briefly that they’re called “methods”,
even if they fill the same role as “functions” in many other languages,
and leave it at that.

On Tue, Feb 26, 2008 at 9:38 PM, Chad P. [email protected]
wrote:

There’s a middle road: Mention briefly that they’re called “methods”,
even if they fill the same role as “functions” in many other languages,
and leave it at that.

Good point. I’ll make the change.

martin

On Sat, Feb 23, 2008 at 10:24 PM, Joel VanderWerf
[email protected] wrote:

etc.

$ grep function *.h

   vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407

Worse there is even module_function, I hate it. But I think that the
community uses method almost exclusively.
Strange that I never complained about #module_function, it made it
even into 1.9 brrrr.

Cheers
Robert


http://ruby-smalltalk.blogspot.com/


Whereof one cannot speak, thereof one must be silent.
Ludwig Wittgenstein