Jesse M wrote: > Well I see something like, > > lass Numeric > def positive? > self > 0 > end > end I assume you understand this from Pine's LtP. > [1, 2, 3].all? &:positive? => true > [-1, 2, 3].all? &:positive? => false > > which i don't understand half of it :) and i'm really gung hoe about it! Have you tried typing this into IRB? I think you'll find it doesn't even work. The & symbol is used to get a Proc from a block passed into a method class Array def eachEven(&wasABlock_nowAProc) # from LtP Online Chapter 10 ... or to convert a Proc into a block when _calling_ a method f = proc do |oddBall| puts oddBall.to_s+' is NOT an even number!' end [1, 2, 3, 4, 5].eachEven &f :positive? is a symbol, so it can't be converted into a block: all? and positive? are just methods (methods can end in !, =, or ?). irb(main):001:0> [1,2,3].all? &:positive? TypeError: wrong argument type Symbol (expected Proc) from (irb):1 Then, the "=> true" and "=> false" aren't actually Ruby code, they're just meant to show the reader the value of that expression. Usually we put a # in front so it's valid Ruby code: positive = proc {|n| n > 0 } [1, 2, 3].all? &positive #=> true [-1, 2, 3].all? &positive #=> false Do you follow that (working) rewrite of the snippet? If you type it into IRB, you should see the results listed after the "#=>". Anyway, for further reading, I recommend Why's (Poignant) Guide to Ruby if you can deal with reading a wacky story in between learning more Ruby. http://www.poignantguide.net/ruby/ Or there's the standard reference, the Pickaxe. Or you can just ask the list when you have a question! All the best! Dave