I need help with understanding the part of the documentation

Hello fellow rubyists,

Please read the whole post despite the fact it’s little long.
I have been reading the pick axe manual and am most inpressed with it.
I fully understand that their are some things that are not explained
till later but I don’t think that is what I’m confused on. I have come
to a part in the manual which I don’t understand and need some
assistance with the following:

Implementing a SongList Container

Class SongList
def deleteFirst
@songs.shift
end
def deleteLast
@songs.pop
end
end

Deffine “def”. Is “undef” it’s oppisit? i.e. it causes an “def”ed thing
to cease to be “def”ed?
what does “deleteFirst” and “deleteLast” do?
@songs” appears to be an array but what is .shift and .pop?

#Here is a more ruby type evaluation of the situation
.pop.is_a?(Popcorn)
if true add .butter and .salt
end
puts ha ha!

class SongList
def
if key.kind_of?(Integer)
@songs[key]
else
# …
end
end
end

What is “[]” for?
Why is the “def” thing in “()”?
What does the line “ @songs[key]” have to do with anything?
Why is “key” in “[]” instead of “()”
Why is “# …” after an “else” statement; in mean “else” must have a
condition to work on right?

Blocks and Iterators

Class SongList
def
if key.kind_of?(Integer)
return @songs[key]
else
for I in [email protected]
return @songs[i] if key == @songs[i].name
end
end
return nil
end
end

In the “I in [email protected]” what are the “I” and “0” there for?
There’s those “…” again what do they do?
Why is their nothing within these “[]” ?

Implementing Iterators

Def fibUpTo(max)
i1, i2 = 1, 1 # parallel assignment
while i1 <= max
yield i1
i1, i2 = i2, i1+i2
end
end
fibUpTo(1000) { |f| print f, " " }

what are does “yeild” do? It invoked what part of the code?
Concerning these characters “{ |f| print f, " " }”, why the “{}” why are
there “|” in the line? What are the “f”s for? What would or could go
in-between the (“ “)?

class Array
def find
for I in 0…size
value = self[i]
return value if yield(value)
end
return nil
end
end [1, 3, 5, 7, 9].find {|v| v*v > 30 }

what does the “for I in 0…size” statement do exactly? You have “for”
which I understand, but then you have an “I” which is not an object or
an integer or a string or a float. Then an “in” which does what?
Followed by a “0” then “…” then “size” and by then I’m totally
confused.

I like Ruby and I’m willing to read all the documentation that you
create but it will not help me if I don’t get it.

1: help me to understand the documentation listed above.

John,

welcome to Ruby!

On Thu, Dec 15, 2011 at 10:17 PM, john fink [email protected] wrote:

Hello fellow rubyists,

Please read the whole post despite the fact it’s little long.

It is usually better to post unrelated questions in multiple threads.
That makes it easier for everybody to understand and answer.

I like Ruby and I’m willing to read all the documentation that you
create but it will not help me if I don’t get it.

Which parts did you read so far? I am asking because I believe the
majority of questions will be answered when you read on.

Kind regards

rober

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs