[#16611] lambda, ->, haskell, and so on — Dave Thomas <dave@...>
This is one of those e-mails that I know from the start to be futile, =20=
T24gV2VkLCBBcHIgMzAsIDIwMDggYXQgMTE6MjYgUE0sIERhdmUgVGhvbWFzIDxkYXZlQHByYWdw
Hi --
David A. Black wrote:
wouldn't
On Thu, May 01, 2008 at 12:26:47PM +0900, Dave Thomas wrote:
Hi --
David A. Black wrote:
Hi --
David A. Black wrote:
On Tue, May 06, 2008 at 02:02:34AM +0900, David A. Black wrote:
Hi --
Hi --
ara howard wrote:
Hi --
Hi --
Hi --
Not to throw the whole thread into a tizzy again, but why again is:
Evan Phoenix wrote:
Hi,
Hi --
On Sun, May 11, 2008 at 9:49 AM, Nobuyoshi Nakada <nobu@ruby-lang.org>
Hi,
Hi --
Hi,
Hi,
What about "fn" or "fun", for "function"?
Hi,
Hi,
Hi --
Hi,
Hi --
On Wed, 14 May 2008, David A. Black wrote:
Hi,
how about an uppercase lambda (instead of the usual lowercase one)
Christopher Gill wrote:
Suraj N. Kurapati wrote:
Hi,
Nobuyoshi Nakada wrote:
Hi,
=20
T24gVGh1LCBNYXkgMjIsIDIwMDggYXQgNTozNyBQTSwgQmVyZ2VyLCBEYW5pZWwgPERhbmllbC5C
RXZlbiB0aG91Z2ggSSBzZWUgdGhlIHVzZWZ1bG5lc3MsIHRoYXQncyBqdXN0IHVnbHkuCgotLUpl
"Jeremy McAnally" <jeremymcanally@gmail.com> wrote on 05/22/2008 05:35:01=20
2008/5/23 <Nate_Wiger@playstation.sony.com>:
I am not sure if that fits to the thread. I have not used yet the more
Tammo Tjarks wrote:
Hi --
> assert_yin_yang -> { q += 0 }, 'it broke!', -> { q == 42 }
Hi --
>> assert_yin_yang proc{ q += 0 }, 'it broke!',
[#16627] Monotonic timeofday() — zimbatm <zimbatm@...>
Hi ruby-core.
[#16642] ruby/trunk rev 16276 broken? ib/erb.rb:429:in `initialize': wrong argument type StringScanner (expected true) (TypeError) — Kurt Stephens <ks@...>
Build crashes shortly after miniruby linkage
[#16648] Uniform RDoc markup — "Jeremy McAnally" <jeremymcanally@...>
Would there be any resistance to making the markup of the RDoc
[#16760] errors running make test — Stephen Bannasch <stephen.bannasch@...>
I updated to revision 16403 and now compiling and running ruby1.9
[#16772] The RubySpec project at rubyspec.org — Brian Ford <brixen@...>
Hi all,
[#16773] Singleton methods on Float and Bignum — Evan Phoenix <evan@...>
In 1.8 (and 1.9 likely), trying to add a singleton method to a Float
Evan Phoenix wrote:
[#16788] Ruby 1.8.7-preview3 has been released — "Akinori MUSHA" <knu@...>
Folks,
[#16791] GC heap allocation in 1.9 — Sylvain Joyeux <sylvain.joyeux@...4x.org>
While getting the latest of trunk, I stumbled on r16194.
[#16806] nil.instance_eval — ts <decoux@...>
[#16807] Embedding Ruby1.9: seg fault — Masoom <masoom.shaikh@...>
Hi,
Hi,
that means current vm is not embeddable ? by min. src I guess you mean the
Masoom wrote:
[#16812] Proposal: Subject of ruby-core ML article should include artile number — SASADA Koichi <ko1@...>
Hi,
On Tue, May 20, 2008 at 8:20 AM, SASADA Koichi <ko1@atdot.net> wrote:
Luis Lavena wrote:
[#16832] Who is responsible for Ruby license? — "Han, Kimyung" <Kimyung.Han@...>
I am trying to discuss the ruby license with anyone who is responsible
[#16834] Returning duplicate values from Dir.glob — "Vladimir Sizikov" <vsizikov@...>
Hi,
[#16839] ruby autoconf problems — "Michal Suchanek" <hramrach@...>
Hello
[#16864] removal of magical definition of name for some class definition idioms — "Robert Dober" <robert.dober@...>
Dear list
[#16884] block args w/ defaults (was Re: resolving lambda | ambiguity) — "Eric Mahurin" <eric.mahurin@...>
On Sat, May 24, 2008 at 4:06 PM, Eric Mahurin <eric.mahurin@gmail.com>
SGV5IQoKSSd2ZSB0cmllZCB5b3VyIHBhdGNoIGFuZCBoYXZlIHNvbWUgdHJvdWJsZXMuCkkgZXhw
[#16886] lambda with normal block syntax — "Eric Mahurin" <eric.mahurin@...>
This patch is an independent but related one to my previous one. It can be
Hi,
On Sun, May 25, 2008 at 8:19 PM, Nobuyoshi Nakada <nobu@ruby-lang.org>
Hi,
Hi,
Hi,
Hi,
On Mon, May 26, 2008 at 4:14 PM, Dave Thomas <dave@pragprog.com> wrote:
Hi,
On Mon, May 26, 2008 at 5:18 PM, Yukihiro Matsumoto <matz@ruby-lang.org>
Hi,
If I may, here are two entries from the ChangeLog file:
Dave Thomas wrote:
Dave Thomas wrote:
Dave Thomas wrote:
On May 27, 2008, at 12:33 PM, David Flanagan wrote:
James Gray wrote:
Dave Thomas wrote:
David Flanagan wrote:
Hi,
On 5/28/08, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
Hi,
On Sun, May 25, 2008 at 2:31 AM, Eric Mahurin <eric.mahurin@gmail.com> wrote:
[#16921] Major performance degradation on trunk — "Vladimir Sizikov" <vsizikov@...>
Hi,
[#16943] Re: [PATCH] block args w/ defaults (updated) — "Eric Mahurin" <eric.mahurin@...>
MjAwOC81LzI2IFJhZG9zs2F3IEJ1s2F0IDxyYWRlay5idWxhdEBnbWFpbC5jb20+OgoKPiBIZXkh
[#16945] Oniguruma and \p{Greek} — Dave Thomas <dave@...>
Looking at the source, I'd expect the following to work:
[#16951] Ruby 1.9 "exception reentered" — "Paul Boekholt" <p.boekholt@...>
Hi,
2008/5/27, Paul Boekholt <p.boekholt@gmail.com>:
2008/6/6, Paul Boekholt <p.boekholt@gmail.com>:
> 2008/6/6, Paul Boekholt <p.boekholt@gmail.com>:
[#16953] 1.8.6, jemalloc, sock.close problem — Christopher Thompson <cthompson@...>
Warning: This message is probably only peripherally related to Ruby!
I used to catch Errno::EINVAL when using lots of open file descriptors
[#16955] ruby-mode.el copyright assignment — Phil Hagelberg <phil@...>
Hi,
[#16979] Array.nitems replacement? — David Flanagan <david@...>
Array.nitems has just been removed from 1.9, and as near as I can make
[#16984] ZLIB for MSVC 8 - tar_input.rb — "Giancarlo F Bellido" <support@...>
I managed to install wxruby and compile zlib extension using this patch in
On May 28, 2008, at 19:48 PM, Giancarlo F Bellido wrote:
[#17010] unexpected return using define_method — Paul Brannan <pbrannan@...>
Is this a bug?
Paul Brannan wrote:
On Fri, May 30, 2008 at 06:10:25PM +0900, ts wrote:
Paul Brannan wrote:
[#17028] Ruby 1.8.7 has been released — "Akinori MUSHA" <knu@...>
Folks,
On Sun, Jun 01, 2008 at 12:25:08AM +0900, Akinori MUSHA wrote:
At Mon, 2 Jun 2008 06:37:21 +0900,
On Mon, Jun 02, 2008 at 03:46:53PM +0900, Akinori MUSHA wrote:
[#17030] Bytecode handling (compilation) extensions to Ruby 1.9 — Adam Strzelecki <ono@...>
Hello,
Hello again,
Hi,
> to_ary() convert ISeq object to Array and well known objects such as
Re: [PATCH] lambda with normal block syntax
On Mon, May 26, 2008 at 10:48 AM, Yukihiro Matsumoto <matz@ruby-lang.org>
wrote:
> Hi,
>
> In message "Re: [PATCH] lambda with normal block syntax"
> on Mon, 26 May 2008 23:14:56 +0900, Dave Thomas <dave@pragprog.com>
> writes:
>
> |You asked people to try the patched syntax that allows
> |
> | meth {|a| a+1}, {|b| b*2}
> |
> |I think that this particular syntax is a lot less obtrusive, and a lot
> |easier to recognize, than
> |
> | meth -> a { a + 1}, -> b { b * 2 }
> |
> |The first one is obviously a couple of blocks: that's what I read when
> |I see {|a| ...}.
> |
> |It seems that most of the posters on this thread agree. And, using
> |your criteria of "try it for a while and see", I'd judge that people
> |have tried -> for a while, and might well be happier with the {|| }
> |version.
>
> Personally I don't like
>
> meth {|a| a+1}, {|b| b*2}
>
> which can be parsed
>
> (meth() {|a| a+1}), ({|b| b*2})
>
> or
>
> meth({|a| a+1}, {|b| b*2})
>
> or whatever. I dislike this kind of ambiguity. In fact, you would
> expect the latter, but I'm afraid Eric's patch gives you the former.
Yes, for compatibility the first interpretation must be used.
Keep in mind that this current syntax has the same issue:
meth {}, {}
except that the {} be a block or a Hash.
This is one of the reasons I most use () around my arguments.
This could be a very evidence of (bad) ambiguity. That's why I asked
> people to try the patch.
>
> Perhaps it works better with Groovy's semantics of block passing (last
> explicit argument with slightly different call syntax). But not with
> Ruby's implicit argument style, which I am not going to change.
>
> |I'd also argue that the {|a| } makes for a better language. My
> |experience teaching this stuff shows that people are confused by the
> |large number of different options that surround blocks. Unifying block
> |parameters with method parameters, and then removing the need for this
> |somewhat strange -> notation, will reduce the number of special cases,
> |and make it a lot easier for people to understand the language. And
> |that's a major cognition win.
>
> This notation introduces something new (a block without any attached
> method, or lambda), with syntax almost indistinguishable from existing
> one (a block attached to a method). I hesitate to give too similar
> syntax to something different. The point should be how different (in
> recognition) a block without attached method (lambda) and an usual
> block in Ruby. I see them different (at least in Ruby). Others may
> not.
Another symbol that has a similar ambiguity that everybody deals with just
fine is "-" (minus). Depending on the context, it can have two different
meanings:
A-B : binary "-", A - B
-A : unary "-", negative A, equivalent to: 0-A
Similarly, with {|| }, it can have two different meanings depending on the
context:
meth { |args| code } : binary "{", call meth with a block
{ |args| code } : unary "{", lambda, equivalent to: lambda { |args| code }
From this perspective, 0 is to - as lambda is to { || }
I think the biggest problem is that the unary block case (the implicit
lambda) also has additional ambiguity with Hash. It is unfortunate that |'s
are required in this case (to differentiate with Hash) and the normal block
(binary "{" operator) doesn't require them. But, I think this trade-off is
better than creating something completely new (i.e. the -> syntax).
|Please, please consider adding both these patches into 1.9.
>
> * block parameter with default argument patch: likely.
> * block without attached method patch: need more persuasion.
Great! This is the priority I'd like to see them. If default argument
patch is applied, the various lambda shortcuts ("->", the bare block syntax,
and all other suggestions) aren't necessary and would only be syntactic
sugar. Personally, I'd rather have the bare block lambda syntax (it matches
the normal blocks we have now) or have no lambda shortcut syntax.
Eric