Confessions of a Python fanboy

I V ivlenin at
Fri Jul 31 07:27:22 CEST 2009

On Thu, 30 Jul 2009 17:57:48 -0400, Luis Zarrabeitia wrote:
> As I understood the question, it was "was wrong in 'for var in
> container' in comparison with ruby's container.each?"
> What's the (semantic) difference between
> for localVar in container:
>     block
> and
> container.each{|localVar| block}

I don't think "each" is a particularly compelling example of Ruby's 
blocks - as you say, it's easily replaceable with a Python for-loop. The 
advantage of Ruby's syntax is that it allows you to define further 
functions that are sort-of like new control structures. So you have 
things like:'myfile', 'r') do |file|
	while line = file.gets
		puts line

Which is like a python's:

with open('myfile', 'r) as f:
	for line in f:
		print f

However, with Ruby, this kind of scoping construct can be added without 
adding new syntax. Another interesting example is the Sinatra web 
framework, which allows you to write a web app with something like:

get '/' do
	"Index page"

post '/:name' do 
	"Posted to " + params[:name]

Which looks something like a DSL for web apps, but is accomplished solely 
with normal ruby functions. More:

Ruby blocks are, fundamentally, syntactic sugar, but they are kind of 

More information about the Python-list mailing list