From: bbqbaker Date: 2006-02-19T02:32:33+09:00 Subject: Understanding ruby? need help I hi, I am new to ruby and bought my first book. i am having sort of difficult time understanding blocks/yeild statements. i am coming from C++. 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} -> 7 in the last line of code, it is passing to function find each number one by one thats on the left? when it hits the "return value if yield(value)" it will pass parameter value to the block and v will now be equal to value, and then perform the code v*v > 30. if that is true, it will get out of fuction find. so what is in between the |" "| of the block is like in c++: bool code_blk(int v) { if (v * v > 30) return TRUE; else return FALSE; } is this kind of right?? thanks -- Posted via http://www.ruby-forum.com/.