[#58149] [ruby-trunk - Feature #9076][Open] New one-argument block syntax: &. — "asterite (Ary Borenszweig)" <ary@...>
23 messages
2013/11/04
[#58259] [ruby-trunk - Feature #9099][Open] Train emoji lambda operator — "charliesome (Charlie Somerville)" <charliesome@...>
9 messages
2013/11/10
[#58312] [ruby-trunk - Feature #9107][Open] Introduce YES and NO as aliases of true and false — "gsamokovarov (Genadi Samokovarov)" <gsamokovarov@...>
5 messages
2013/11/13
[#58350] [ruby-trunk - Feature #9113][Open] Ship Ruby for Linux with jemalloc out-of-the-box — "sam.saffron (Sam Saffron)" <sam.saffron@...>
59 messages
2013/11/15
[#60851] Re: [ruby-trunk - Feature #9113][Open] Ship Ruby for Linux with jemalloc out-of-the-box
— Eric Wong <normalperson@...>
2014/02/19
Btw, I also hope to experiment with a slab allocator since many internal
[#62721] [ruby-trunk - Feature #9113] Ship Ruby for Linux with jemalloc out-of-the-box
— nobu@...
2014/05/24
Issue #9113 has been updated by Nobuyoshi Nakada.
[#62735] [ruby-trunk - Feature #9113] Ship Ruby for Linux with jemalloc out-of-the-box
— normalperson@...
2014/05/25
Issue #9113 has been updated by Eric Wong.
[#58391] [ruby-trunk - Bug #9119][Assigned] TestTime#test_marshal_broken_offset broken under MinGW — "luislavena (Luis Lavena)" <luislavena@...>
10 messages
2013/11/17
[#58396] [ruby-trunk - Bug #9121][Open] [PATCH] Remove rbtree implementation of SortedSet due to performance regression — "xshay (Xavier Shay)" <contact@...>
15 messages
2013/11/18
[#58404] [ruby-trunk - Feature #9123][Open] Make Numeric#nonzero? behavior consistent with Numeric#zero? — "sferik (Erik Michaels-Ober)" <sferik@...>
40 messages
2013/11/18
[#58411] [ruby-trunk - Bug #9124][Open] TestSocket errors in test-all on Arch 64-bit — "jonforums (Jon Forums)" <redmine@...>
14 messages
2013/11/18
[#58515] [ruby-trunk - Bug #9124] TestSocket errors in test-all on Arch 64-bit
— "jonforums (Jon Forums)" <redmine@...>
2013/11/23
[#58841] [ruby-trunk - Bug #9124] TestSocket errors in test-all on Arch 64-bit
— "jonforums (Jon Forums)" <redmine@...>
2013/12/04
[#58842] Re: [ruby-trunk - Bug #9124] TestSocket errors in test-all on Arch 64-bit
— Eric Wong <normalperson@...>
2013/12/04
"jonforums (Jon Forums)" <[email protected]> wrote:
[#58452] [ruby-trunk - Bug #9133][Open] logger rotates log files more than expected — "no6v (Nobuhiro IMAI)" <nov@...>
8 messages
2013/11/21
[#58473] Object identity for string hash keys — Andrew Vit <andrew@...>
I'm not sure if this is a bug. I'm creating a hash like this:
5 messages
2013/11/21
[#58490] Re: [ruby-cvs:50910] drbrain:r43767 (trunk): * lib/rubygems: Update to RubyGems master 50a8210. Important changes — Tanaka Akira <akr@...>
2013/11/22 <[email protected]>:
4 messages
2013/11/22
[#58492] Re: [ruby-cvs:50910] drbrain:r43767 (trunk): * lib/rubygems: Update to RubyGems master 50a8210. Important changes
— Eric Wong <normalperson@...>
2013/11/22
Tanaka Akira <[email protected]> wrote:
[#58496] [ruby-trunk - Feature #9140][Open] Allow each_with_index to get start index — "rosenfeld (Rodrigo Rosenfeld Rosas)" <rr.rosas@...>
8 messages
2013/11/22
[#58545] [ruby-trunk - Feature #9145][Open] Queue#pop(true) return nil if empty instead of raising ThreadError — "jsc (Justin Collins)" <redmine@...>
9 messages
2013/11/24
[#58599] [ruby-trunk - Bug #9159][Open] [patch] use rb_fstring for internal strings — "tmm1 (Aman Gupta)" <[email protected]>
5 messages
2013/11/26
[#58653] [ruby-trunk - Bug #9170][Open] Math.sqrt returns different types when mathn is included; breaks various gems - this bug can be reproduced in Ruby 1.8 as well — "kranzky (Jason Hutchens)" <JasonHutchens@...>
7 messages
2013/11/28
[#58719] [ruby-trunk - Feature #5446] at_fork callback API — "tmm1 (Aman Gupta)" <[email protected]>
6 messages
2013/11/30
[ruby-core:58154] Re: [ruby-trunk - Feature #9076] New one-argument block syntax: &.
From:
Fuad Saud <fuadksd@...>
Date:
2013-11-04 20:26:31 UTC
List:
ruby-core #58154
Introducing both syntaxes indeed is a bit confusing. I don=E2=80=99t thin= k =5B1, 10, 100=5D.map &.to=5Fs.length is much better than =5B1, 10, 100=5D.map =7B =7Ci=7C i.to=5Fs.length =7D I think the latter is clearer. I'm fond of having some sugar for position= al parameter access (like % in clojure or & in elixir), though. =20 -- =20 =46uad Saud Sent with Sparrow (http://www.sparrowmailapp.com/=3Fsig) On Monday, November 4, 2013 at 1:57 PM, shevegen (markus heiler) wrote: > =20 > Issue =239076 has been updated by shevegen (markus heiler). > =20 > =20 > Note that if &: would be removed at the same time and &. added I would = not mind it that much. You could use & as a reference to a global object,= just similar to how =241 or =242 is automagically set for regexes. But t= o keep two different syntaxes for semi-similar issues is very bad. > ---------------------------------------- > =46eature =239076: New one-argument block syntax: &. > https://bugs.ruby-lang.org/issues/9076=23change-42742 > =20 > Author: asterite (Ary Borenszweig) > Status: Open > Priority: Normal > Assignee: =20 > Category: core > Target version: current: 2.1.0 > =20 > =20 > Hello, > =20 > I'd like to introduce a new syntax for blocks that have one argument. > =20 > Currently you can do this: > =20 > =5B1, 2, 3=5D.map &:to=5Fs > =20 > With the proposed syntax this will be written as: > =20 > =5B1, 2, 3=5D.map &.to=5Fs > =20 > Instead of =22:=22 we use a =22.=22. > =20 > The idea is that this new syntax is just syntax sugar that is expanded = by the parser to this: > =20 > =5B1, 2, 3=5D.map =7B =7Carg=7C arg.to=5Fs =7D > =20 > This new syntax allows passing arguments: > =20 > =5B1, 2, 3, 4=5D.map &.to=5Fs(2) =23=3D> =5B=221=22, =2210=22, =2211=22= , =22100=22=5D > =20 > It also allows chaining calls: > =20 > =5B1, 10, 100=5D.map &.to=5Fs.length =23=3D> =5B1, 2, 3=5D > =20 > You can also use another block: > =20 > =5B=5B1, -2=5D, =5B-3, -4=5D=5D.map &.map &.abs =23=3D> =5B=5B1, 2=5D, = =5B3, 4=5D=5D > =20 > Pros: > - Doesn't conflict with any existing syntax, because that now gives a s= yntax error, so it is available. > - Allows passing arguments and chaining calls > - It's *fast*: it's just syntax sugar. The =22&:to=5Fs=22 is slower bec= ause the to=5Fproc method is invoked, you have a cache of procs, etc. > - It looks ok (in my opinion) and allows very nice functional code (lik= e the last example). > =20 > Cons: > - Only supports one (implicit) argument. But this is the same limitatio= n of =22&:to=5Fs=22. If you want more than one argument, use the traditio= nal block syntax. > - It's a new syntax, so users need to learn it. But to defend this poin= t, users right now need to understand the &:to=5Fs syntax, which is hard = to explain (this calls the =22to=5Fproc=22 method of Symbol, which create= s a block... vs. =22it's just syntax sugar for=22) > =20 > What do you think=3F > =20 > We are using this syntax in a new language we are doing, Crystal, which= has a syntax very similar to Ruby, and so far we think it's nice, simple= and powerful. You can read more about it here: http://crystal-lang.org/2= 013/09/15/to-proc.html > =20 > =20 > -- =20 > http://bugs.ruby-lang.org/ > =20 > =20