[#7286] Re: ruby-dev summary 28206-28273 — ara.t.howard@...

On Thu, 2 Feb 2006, Minero Aoki wrote:

23 messages 2006/02/02
[#7292] ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — mathew <meta@...> 2006/02/02

[#7293] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — mathew <meta@...> 2006/02/02

mathew wrote:

[#7298] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — James Britt <ruby@...> 2006/02/03

mathew wrote:

[#7310] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — Evan Webb <evanwebb@...> 2006/02/07

I'm not sure we even need the 'with' syntax. Even if we do, it breaks

[#7311] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — Eero Saynatkari <ruby-ml@...> 2006/02/07

On 2006.02.07 10:03, Evan Webb wrote:

[#7313] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — Evan Webb <evanwebb@...> 2006/02/07

Umm, on what version are you seeing a warning there? I don't and never

[#7315] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — Eero Saynatkari <ruby-ml@...> 2006/02/07

On 2006.02.07 14:47, Evan Webb wrote:

[#7316] Re: ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273) — Evan Webb <evanwebb@...> 2006/02/07

I'd by far prefer it never emit a warning. The warning is assumes you

[#7305] Re: Problem with weak references on OS X 10.3 — Mauricio Fernandez <mfp@...>

On Sun, Feb 05, 2006 at 08:33:40PM +0900, Christian Neukirchen wrote:

28 messages 2006/02/05
[#7401] Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Eric Hodel <drbrain@...7.net> 2006/02/22

On Feb 5, 2006, at 5:05 AM, Mauricio Fernandez wrote:

[#7414] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Mauricio Fernandez <mfp@...> 2006/02/23

On Wed, Feb 22, 2006 at 02:21:24PM +0900, Eric Hodel wrote:

[#7428] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Tanaka Akira <akr@...17n.org> 2006/02/26

In article <1140968746.321377.18843.nullmailer@x31.priv.netlab.jp>,

[#7444] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — nobu@... 2006/02/28

Hi,

[#7445] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Tanaka Akira <akr@...17n.org> 2006/02/28

In article <m1FDshr-0006MNC@Knoppix>,

[#7447] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Tanaka Akira <akr@...17n.org> 2006/02/28

In article <87irr047sx.fsf@m17n.org>,

[#7448] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Tanaka Akira <akr@...17n.org> 2006/02/28

In article <87vev0hxu5.fsf@m17n.org>,

[#7465] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — "Evan Webb" <evanwebb@...> 2006/03/01

Just my quick 2 cents...

[#7468] Re: Symbols overlap ordinary objects, especially on OS X (Was: Re: Problem with weak references on OS X 10.3) — Tanaka Akira <akr@...17n.org> 2006/03/01

In article <92f5f81d0602281855g27e78f4eua8bf20e0b8e47b68@mail.gmail.com>,

[#7403] Module#define_method "send hack" fails with Ruby 1.9 — Emiel van de Laar <emiel@...>

Hi List,

12 messages 2006/02/22
[#7404] Re: Module#define_method "send hack" fails with Ruby 1.9 — George Ogata <g_ogata@...> 2006/02/22

Emiel van de Laar <emiel@rednode.nl> writes:

[#7406] Re: Module#define_method "send hack" fails with Ruby 1.9 — dblack@... 2006/02/22

Hi --

[#7442] GC Question — zdennis <zdennis@...>

I have been posting to the ruby-talk mailing list about ruby memory and GC, and I think it's ready

17 messages 2006/02/27

ANDCALL / iff? / &? (was Re: ruby-dev summary 28206-28273)

From: mathew <meta@...>
Date: 2006-02-02 23:46:12 UTC
List: ruby-core #7292
> [ruby-dev:28217] ANDCALL operator
>
>  Nobuyoshi Nakada suggested a new operator `&?' (this notation is 
> temporary)
>  which evaluates left-hand-side expression, and if it is true then call
>  right-hand-side method.  For example:
>
>    if a[1] and a[1].strip.empty?
>                ||
>    if a[1] &? strip.empty?
>
>    h["key"] and h["key"].dispatch
>                ||
>    h["key"] &? dispatch
>
>  The motivation of this operator is to avoid duplication of expression.
>
>  Takaaki Tateishi proposed another idea, Object#nil? with block
>  (again, this name is temporary).
>
>    a[1].nil? {|str| str.strip.empty? }
>    h["key"].nil? {|h| h.dispatch }
>
>  This issue is still open. 

I have to say, I don't like any of these. Personally, I write

if a
  a.foo
end

because it's simple for anyone to understand, and easy to refactor when 
you inevitably decide you need to do something else as well as calling 
the method. If you find it too painful to type the expression twice, I 
say get a text editor which has dynamic completion, or use a temporary 
variable if your expression has side effects.

>     #
>     # if, and only if
>     #
>
>       iff?(a.first){ p self }

I dislike this less, because at least it's not an operator. I switched 
from Perl to get away from those.

Another option would be to call it 'with', and define that with(nil) 
doesn't execute the block. Then you could just write

with a[1] strip.empty

or

with a[1]
  strip
  empty
end

which would have the side benefit of allowing you to reduce the length 
of long lines of chained methods.


mathew
[ OK, I admit it, I got the idea from BASIC. ]

In This Thread