[#393012] Basic Ruby performance — Dmitry Nikiforov <dniq@...>

Hello all!

43 messages 2012/02/02
[#393013] Re: Basic Ruby performance — Dmitry Nikiforov <dniq@...> 2012/02/02

Here's another example with significantly bigger performance difference:

[#393015] Re: Basic Ruby performance — Ryan Davis <ryand-ruby@...> 2012/02/02

[#393016] Re: Basic Ruby performance — Peter Vandenabeele <peter@...> 2012/02/02

On Fri, Feb 3, 2012 at 12:20 AM, Ryan Davis <ryand-ruby@zenspider.com>wrote:

[#393020] Re: Basic Ruby performance — Ryan Davis <ryand-ruby@...> 2012/02/03

[#393076] Problem migrating to Ruby 1.9.2 — Patrick Bayford <pbayford@...>

Some assistance please - I have a Ruby project, which I started in Ruby

10 messages 2012/02/03

[#393164] Using _ like in Scala? — Marc Heiler <shevegen@...>

fruits = %w( apple banana orange )

27 messages 2012/02/06
[#393201] Re: Using _ like in Scala? — Tony Arcieri <tony.arcieri@...> 2012/02/07

On Mon, Feb 6, 2012 at 10:54 AM, Marc Heiler <shevegen@linuxmail.org> wrote:

[#393204] Re: Using _ like in Scala? — Eric Christopherson <echristopherson@...> 2012/02/07

On Mon, Feb 6, 2012 at 7:21 PM, Tony Arcieri <tony.arcieri@gmail.com> wrote:

[#393206] Re: Using _ like in Scala? — Tony Arcieri <tony.arcieri@...> 2012/02/07

On Mon, Feb 6, 2012 at 5:56 PM, Eric Christopherson <

[#393208] Re: Using _ like in Scala? — Kevin <darkintent@...> 2012/02/07

On Mon, Feb 6, 2012 at 9:07 PM, Tony Arcieri <tony.arcieri@gmail.com> wrote:

[#393216] Re: Using _ like in Scala? — Robert Klemme <shortcutter@...> 2012/02/07

On Tue, Feb 7, 2012 at 6:56 AM, Kevin <darkintent@gmail.com> wrote:

[#393219] Re: Using _ like in Scala? — Josh Cheek <josh.cheek@...> 2012/02/07

On Tue, Feb 7, 2012 at 4:47 AM, Robert Klemme <shortcutter@googlemail.com>wrote:

[#393220] Re: Using _ like in Scala? — Robert Klemme <shortcutter@...> 2012/02/07

On Tue, Feb 7, 2012 at 1:00 PM, Josh Cheek <josh.cheek@gmail.com> wrote:

[#393240] Re: Using _ like in Scala? — Josh Cheek <josh.cheek@...> 2012/02/08

On Tue, Feb 7, 2012 at 9:15 AM, Robert Klemme <shortcutter@googlemail.com>wrote:

[#393254] Re: Using _ like in Scala? — Robert Klemme <shortcutter@...> 2012/02/08

On Wed, Feb 8, 2012 at 3:43 AM, Josh Cheek <josh.cheek@gmail.com> wrote:

[#393259] Re: Using _ like in Scala? — Josh Cheek <josh.cheek@...> 2012/02/08

On Wed, Feb 8, 2012 at 5:58 AM, Robert Klemme <shortcutter@googlemail.com>wrote:

[#393181] Tork 18.0.0 — "Suraj N. Kurapati" <sunaku@...>

Tork - Test with fork - https://github.com/sunaku/tork#readme

16 messages 2012/02/06
[#393183] Re: [ANN] Tork 18.0.0 — Bartosz Dziewoński <matma.rex@...> 2012/02/06

You have faster major version release cycle than Chrome...

[#393189] Re: [ANN] Tork 18.0.0 — Quintus <sutniuq@...> 2012/02/06

Am 06.02.2012 22:07, schrieb Bartosz Dziewoナгki:

[#393203] Re: Tork 18.0.0 — Suraj Kurapati <sunaku@...> 2012/02/07

Marvin G=C3=BClker wrote in post #1044440:

[#393347] Symbol garbage collection — Dido Sevilla <dido.sevilla@...>

I've always wondered why Ruby didn't do garbage collection of symbols,

13 messages 2012/02/10

[#393402] Who Administrates this list and how can the community help save this list from the noise. — andrew mcelroy <sophrinix@...>

It is very clear that this list has been under a incredibly heavy

21 messages 2012/02/11
[#393403] Re: Who Administrates this list and how can the community help save this list from the noise. — serialhex <serialhex@...> 2012/02/11

+1

[#393407] Re: Who Administrates this list and how can the community help save this list from the noise. — Cathy Alomari <cathy1428@...> 2012/02/11

Good luck, I doubt anyone is paying attention. I have seen numerous

[#393410] Re: Who Administrates this list and how can the community help save this list from the noise. — "Darryl L. Pierce" <mcpierce@...> 2012/02/11

On Sat, Feb 11, 2012 at 1:12 PM, Cathy Alomari <cathy1428@gmail.com> wrote:

[#393430] Re: Who Administrates this list and how can the community help save this list from the noise. — Cathy Alomari <cathy1428@...> 2012/02/13

On Sat, Feb 11, 2012 at 10:48 AM, Darryl L. Pierce <mcpierce@gmail.com>wrote:

[#393432] Re: Who Administrates this list and how can the community help save this list from the noise. — Bartosz Dziewoński <matma.rex@...> 2012/02/13

2012/2/13 Cathy Alomari <cathy1428@gmail.com>:

[#393434] Re: Who Administrates this list and how can the community help save this list from the noise. — Rimantas Liubertas <rimantas@...> 2012/02/13

> Have you tried mailing ruby-talk-ctl@ruby-lang.org (mailto:ruby-talk-ctl@ruby-lang.org) with "unsubscribe"

[#393412] the ruby syntax — maven apache <apachemaven0@...>

Hi:

19 messages 2012/02/12
[#393413] Re: the ruby syntax — Bartosz Dziewoński <matma.rex@...> 2012/02/12

When a hash is the last argument to a method, you can skip its open-

[#393416] Re: the ruby syntax — maven apache <apachemaven0@...> 2012/02/12

2012/2/12 Bartosz Dziewo=C5=84ski <matma.rex@gmail.com>

[#393435] Re: the ruby syntax — Saji Hameed <saji@...> 2012/02/13

On Sun, Feb 12, 2012 at 10:49 PM, maven apache <apachemaven0@gmail.com> wro=

[#393546] Difference between 1.9.2 and 1.9.3 — James French <James.French@...>

module A <- line 1

12 messages 2012/02/20
[#393558] Re: Difference between 1.9.2 and 1.9.3 — Dave Aronson <rubytalk2dave@...> 2012/02/21

On Mon, Feb 20, 2012 at 12:25, James French

[#393548] Accessing a local variable through a symbol — Ralph Shnelvar <ralphs@...32.com>

Let's say I have

11 messages 2012/02/20

[#393671] Rubymoticons — Dave Aronson <rubytalk2dave@...>

I was demonstrating injection of a symbol, and noticed a familiar

12 messages 2012/02/28

Re: Multiple assignment in conditional

From: Gavin Sinclair <gsinclair@...>
Date: 2012-02-02 11:45:55 UTC
List: ruby-talk #392986
On Thu, Feb 2, 2012 at 8:03 AM, Josh Cheek <josh.cheek@gmail.com> wrote:
> Could you just write what you expect the evaluation to be in each of these
> cases?
>
> a, b = 1, 1
> a, b = 1, nil
> a, b = nil, 1
> a, b = nil, nil
>
> I'd expect return values of [1, 1], [1, nil], [nil, 1], [nil, nil] which
> are all true.

Yes, I expect what you expect.

Also,

  a, b = nil         # a and b both get the value nil

> Now does this change when the RHS is an array instead of two values?
> For example, would `a, b = [1, 1]` return a different value than `a, b =
> [1, 1]`?

No, because you wrote them exactly the same!

Assuming you meant to compare these two:

  a, b = 1, 1
  a, b = [1, 1]

then I expect them to behave exactly the same.  I can see why you
expect it to set a to [1,1] and b to nil, but that's just not the way
it is.  If I'm not wrong, Ruby actually converts the first line above
into the second line behind the scenes.  After all, that's precisely
how you return multiple values from a method, or at least give the
appearance of doing so.

  def two_values(x)
    [x*2, x^2]
  end

  a, b = two_values(5)

From faint memory, to achieve the same thing in Perl you must wrap the
LHS in an array.  Ruby's equivalent would be

  [a, b] = two_values(5)    # This doesn't work in Ruby, and it's not missed.

> Your example seems particularly devious in that it only has one value on
> the RHS of the assignment.

No it doesn't.  That's not a value, per se, it's a method call.  The
method call returns either an array, which assigns the two variables
and activates the "if" branch, or nil, which activates the "else"
branch.

I didn't approach this being devious or thinking it would be at all
controversial.  I simply have a good intuition for assignment in Ruby.

> This means that the second argument will be
> assigned nil (because there is no value for it),

No.  Try this in irb:

  if _ = (a, b = [5,2,16,100])
    puts a + b
  end

And this.

  a, b = nil
  a, b = 1
  a, b = 1, 2
  a, b = [1, 2]
  a, b = [1,2,3,4,5]

  a, *b = nil
  a, *b = 1
  a, *b = 1, 2
  a, *b = [1, 2]
  a, *b = [1,2,3,4,5]

and see what these assignment operators return and what values get set
to a and b.

> [...]
>
> There are so many nuanced ruby edge cases one must know (and then must also
> know the implementation of how it is being returned) to understand that
> example that I think it has more overhead than it is worth.

There isn't a single nuance [1]; it all follows from understanding
parallel assignment in Ruby.  I didn't go out of my way to learn that.
 It must have been in one of the early Ruby books I read, or
something, and something I use all the time (especially multiple
returns from methods).

[1] in 1.9.3.  The earlier versions have the nuance of

  a, b = nil      # Returns [nil] instead of nil.

That pre-1.9.3 behaviour is contrary to what I've always expected and
I'm glad to see it corrected.  I can only surmise that the syntax
error "multiple assignment in conditional" is a hangover from those
days as a (fair) warning that it's not going to do what you expect,
and no good can come of it.  They've changed the behaviour, but left
the completely unnecessary syntax error.

Gavin

In This Thread