I’m walking myself through the Ruby Course, by Brian Schroder, and using SciTE as my temporary IDE. Here are a few things that made me scratch me head.
Single and double quotation marks matter a lot:
puts “#{multi_foo(2)}“ #outputs results of function ‘multi_foo(2)’
Stacks and queues can be implemented two ways to get the same behavior, but the container (array) is way different.
Stack as I know it:
stack = Array.new()
stack.push(‘a1’) stack.push(‘a2’) stack.push(‘a3’) puts stack.pop until stack.empty? |
Queue as I know it:
queue = Array.new()
queue.push(‘q1’) queue.push(‘q2’) queue.push(‘q3’) puts queue.shift until queue.empty? |
No-no stack:
stack = Array.new()
stack.unshift(‘s1’) stack.unshift(‘s2’) stack.unshift(‘s3’) puts stack.shift until stack.empty? |
No-no queue:
queue = Array.new()
queue.unshift(‘q1’) queue.unshift(‘q2’) queue.unshift(‘q3’) puts queue.pop until queue.empty? |
I also came across some funky data type, the DEQUE/DEQUEUE” – a double-ended queue. I’m not sure how to use this in real life, can anyone give me a good example? I’m still trying to get me head wrapped around this data structure…
Deque 1:
deque = Array.new()
deque.unshift(‘unshift1’) deque.unshift(‘unshift2’) deque.unshift(‘unshift3’) deque.push(‘push1’) deque.push(‘push2’) deque.push(‘push3’) puts deque.shift until deque.empty? |
Deque 2:
deque = Array.new()
deque.unshift(‘unshift1’) deque.unshift(‘unshift2’) deque.unshift(‘unshift3’) deque.push(‘push1’) deque.push(‘push2’) deque.push(‘push3’) puts deque.pop until deque.empty? |
Right now, I’m trying to get a good understanding of the hashes, iterators and blocks. It’s not new to me, but the syntax hurts. After a few exercises, hopefully I’ll get it.
Oh yeah, and Happy Valentine’s Day.
Hi Tom,
Ruby is Awesome! I am also learning little by little. You can watch some of the screencasts I created at http://www.screencastaday.com.
Thanks,
Azam