Interesting talk on Python vs. Ruby and how he would like Python to have just a bit more syntactic flexibility.

Steve Howell showell30 at yahoo.com
Fri Feb 19 12:56:15 EST 2010


On Feb 19, 9:30 am, Steven D'Aprano <st... at REMOVE-THIS-
cybersource.com.au> wrote:
> On Fri, 19 Feb 2010 08:32:53 -0800, Steve Howell wrote:
> > The extra expressiveness of Ruby comes from the fact that you can add
> > statements within the block, which I find useful sometimes just for
> > debugging purposes:
>
> >     debug = true
> >     data = strange_dataset_from_third_party_code()
> >     data.each { |arg|
> >         if debug and arg > 10000
> >             puts arg
> >         end
> >         # square the values
> >         arg * arg
> >     }
>
> How is that different from this?
>
> debug = true
> data = strange_dataset_from_third_party_code()
> for i, arg in enumerate(data):
>     if debug and arg > 10000
>         print arg
>     # square the values
>     data[i] = arg * arg
>
> I don't see the extra expressiveness. What I see is that the Ruby snippet
> takes more lines (even excluding the final brace), and makes things
> implicit which in my opinion should be explicit. But since I'm no Ruby
> expert, perhaps I'm misreading it.
>

You are reading the example out of context.

Can you re-read the part you snipped?

The small piece of code can obviously be written imperatively, but the
point of the example was not to print a bunch of squares.



More information about the Python-list mailing list