[#24648] [Bug #1852] Enumerable's #hash Raises ArgumentError When Recursive Values are Present — Run Paint Run Run <redmine@...>

Bug #1852: Enumerable's #hash Raises ArgumentError When Recursive Values are Present

20 messages 2009/08/01
[#24649] Re: [Bug #1852] Enumerable's #hash Raises ArgumentError When Recursive Values are Present — Tanaka Akira <akr@...> 2009/08/01

In article <4a73e51b5a4f9_138119f2a982704e@redmine.ruby-lang.org>,

[#24652] Re: [Bug #1852] Enumerable's #hash Raises ArgumentError When Recursive Values are Present — Run Paint Run Run <runrun@...> 2009/08/01

> Is it valuable to implement such function?

[#24682] Re: [Bug #1852] Enumerable's #hash Raises ArgumentError When Recursive Values are Present — Tanaka Akira <akr@...> 2009/08/02

In article <67e307490908010125r6fa76654pa8e2224f714588fc@mail.gmail.com>,

[#24673] [Feature #1857] install *.h and *.inc — Roger Pack <redmine@...>

Feature #1857: install *.h and *.inc

21 messages 2009/08/01

[#24732] [Bug #1873] MatchData#[]: Omits All But Last Captures Corresponding to the Same Named Group — Run Paint Run Run <redmine@...>

Bug #1873: MatchData#[]: Omits All But Last Captures Corresponding to the Same Named Group

12 messages 2009/08/03

[#24775] [Feature #1889] Teach Onigurma Unicode 5.0 Character Properties — Run Paint Run Run <redmine@...>

Feature #1889: Teach Onigurma Unicode 5.0 Character Properties

30 messages 2009/08/05

[#24786] [Bug #1893] Recursive Enumerable#join is surprising — Jeremy Kemper <redmine@...>

Bug #1893: Recursive Enumerable#join is surprising

24 messages 2009/08/06
[#28422] [Bug #1893] Recursive Enumerable#join is surprising — Yusuke Endoh <redmine@...> 2010/03/02

Issue #1893 has been updated by Yusuke Endoh.

[#28438] Re: [Bug #1893] Recursive Enumerable#join is surprising — Yukihiro Matsumoto <matz@...> 2010/03/03

Hi,

[#24854] embedding ruby 1.9 frustration — Rolando Abarca <funkaster@...>

Hello,

12 messages 2009/08/10

[#24982] [Feature #1961] Kernel#__dir__ — Yutaka HARA <redmine@...>

Feature #1961: Kernel#__dir__

26 messages 2009/08/19
[#28898] [Feature #1961] Kernel#__dir__ — Roger Pack <redmine@...> 2010/03/23

Issue #1961 has been updated by Roger Pack.

[#28900] Re: [Feature #1961] Kernel#__dir__ — Kornelius Kalnbach <murphy@...> 2010/03/23

On 23.03.10 19:10, Roger Pack wrote:

[#25025] [Backport #1975] Backport Dir.mktmpdir — Kirk Haines <redmine@...>

Backport #1975: Backport Dir.mktmpdir

12 messages 2009/08/21

[#25041] Proposal: Simpler block format — Yehuda Katz <wycats@...>

I'd like to propose that we add the following syntax for procs in Ruby:

45 messages 2009/08/23
[#25046] Re: Proposal: Simpler block format — Caleb Clausen <caleb@...> 2009/08/23

Yehuda Katz wrote:

[#25049] Re: Proposal: Simpler block format — Yehuda Katz <wycats@...> 2009/08/23

On Sat, Aug 22, 2009 at 7:38 PM, Caleb Clausen <caleb@inforadical.net>wrote:

[#25058] Re: Proposal: Simpler block format — Yukihiro Matsumoto <matz@...> 2009/08/23

Hi,

[#25059] Re: Proposal: Simpler block format — Yehuda Katz <wycats@...> 2009/08/23

On Sun, Aug 23, 2009 at 3:33 PM, Yukihiro Matsumoto <matz@ruby-lang.org>wrote:

[#25063] Re: Proposal: Simpler block format — "David A. Black" <dblack@...> 2009/08/23

Hi --

[#25068] Re: Proposal: Simpler block format — brian ford <brixen@...> 2009/08/24

Hi,

[#25086] [Bug #1991] ruby should use twolevel namespace on OS X — Michal Suchanek <redmine@...>

Bug #1991: ruby should use twolevel namespace on OS X

12 messages 2009/08/24

[#25208] Module#prepend and Array#prepend — Yehuda Katz <wycats@...>

Matz,

23 messages 2009/08/30

[#25210] [Feature #2022] Patch for ruby-1.8.6 and openssl-1.0 — Jeroen van Meeuwen <redmine@...>

Feature #2022: Patch for ruby-1.8.6 and openssl-1.0

15 messages 2009/08/30

[#25220] [Bug #2026] String encodings are not supported by most of IO on Linux — Vit Ondruch <redmine@...>

Bug #2026: String encodings are not supported by most of IO on Linux

18 messages 2009/08/31

[ruby-core:25061] Re: Proposal: Simpler block format

From: Yehuda Katz <wycats@...>
Date: 2009-08-23 23:24:53 UTC
List: ruby-core #25061
I was actually just discussing that with Ujihisa. Unfortunately, it would
break far too much code to be practical (think, every single Ruby script out
there).
-- Yehuda

On Sun, Aug 23, 2009 at 4:17 PM, <danielcavanagh@aanet.com.au> wrote:

> > On Sun, Aug 23, 2009 at 3:33 PM, Yukihiro Matsumoto
> > <matz@ruby-lang.org>wrote:
> >
> >> Hi,
> >>
> >> In message "Re: [ruby-core:25049] Re: Proposal: Simpler block format"
> >>     on Sun, 23 Aug 2009 15:53:03 +0900, Yehuda Katz <wycats@gmail.com>
> >> writes:
> >>
> >> |Things that currently don't parse are fine to become blocks. I'd be
> >> worried
> >> |about a case that currently parsed fine as a Hash but might be expected
> >> to
> >> |be parsed as a block if this feature existed. Can you think of any?
> >>
> >> I don't worry about the ambiguity for the parser, but have anxiety for
> >> humans.  Under the new syntax, when we see
> >>
> >>  m {"this is a block not a proc"}
> >>
> >> there are two possibility.  And it would be burden for mind of the
> >> programmers.  That's the reason I insisted the past proposal (that
> >> was from David Black, IIRC).  This time, we have working code for the
> >> proposal, so we can try.  Let's see how we feel.
> >
> >
> > The compelling this for me is that it makes methods that take multiple
> > blocks easier for programmer to read. For programmer, one big confusion
> in
> > Ruby is difference between proc, block, lambda and method. Unifying
> syntax
> > for block and proc shows that they are really just same thing, with proc
> > passed as parameter and block passed as special parameter.
> >
> > Then whenever programmer sees { something } they know it is "proc" with
> > lexical scope, and whenever programmer sees ->{ something } they know it
> > is
> > "lambda" with function scope.
> >
> > I would even be in favor of def { } as lambda syntax, which would make
> > clear
> > to programmer that this block behaves just like normal method. Then we
> > have
> > just two things: def for method-scope (def something() end and def { })
> > and
> > bare { } for block scope.
>
> if we're throwing ideas out there, i've always thought it would be a good
> idea to do exactly what you've proposed, plus take { } away from hashes
> and use [ ] instead. that way { } is just for proc, method, etc., and [ ]
> is for arrays and hashes. what's inside of the [ ] determines whether it's
> an array or hash. thus:
>
> [1, 2, 4, 9]     # array
> [1 => 2, 4 => 9] # hash
> [a: 'b', c: 'd'] # hash
> [a: 'b', 1, 2]   # error or hash
> { ... }          # proc, always
> def { ... }      # method, lambda
> ->{ ... }        # method, lambda
>
> this breaks everything though. but we _are_ still in 1.9, and one can
> dream...
>
>
>


-- 
Yehuda Katz
Developer | Engine Yard
(ph) 718.877.1325

In This Thread