From Waclaw.Marcin.Kusnierczyk at idi.ntnu.no  Mon Feb 23 08:52:05 2009
From: Waclaw.Marcin.Kusnierczyk at idi.ntnu.no (Wacek Kusnierczyk)
Date: Mon, 23 Feb 2009 08:52:05 +0100
Subject: [Rd] [R] Semantics of sequences in R
In-Reply-To: <20090223113422.76cc1494@absentia>
References: <8b356f880902221242r47cdb138w9b1ac05cc5e5e317@mail.gmail.com>	<49A1BFC7.9060503@stats.uwo.ca>	<8b356f880902221350q4a976bfr19b0d5b01a989250@mail.gmail.com>
	<20090223113422.76cc1494@absentia>
Message-ID: <49A255A5.1010506@idi.ntnu.no>

g'orning,

Berwin A Turlach wrote:
> G'day Stavros,
>
>
>   

<snip>

>> In many cases, the orthogonal design is pretty straightforward.  And
>> in the cases where the operation is currently an error (e.g.
>> sort(list(...))), I'd hope that wouldn't break existing code. [...]
>>     
>
> This could actually be an example that would break a lot of existing
> code.
>
> sort is a generic function, and for sort(list(...)) to work, it would
> have to dispatch to a function called sort.list; and as Patrick Burns'
> "The R Inferno" points out, such a function exists already and it is not
> for sorting list.  
>   

and you mean that sort.list not being applicable to lists is a) good
design, and b) something that by noe means should be fixed, right?


> In fact, currently you get:
>
> R> cc <- list(a=runif(4), b=rnorm(6))
> R> sort(cc)
> Error in sort.list(cc) : 'x' must be atomic for 'sort.list'
> Have you called 'sort' on a list?
>   

one of the most funny error messages you get in r.  note also that,
following rolf turner's lists and vectors unproven theorem, a vector can
be considered a list -- hence sort.list should raise the error on any
vector input, no?


> Thus, to make sort(list()) work, you would have to rename the existing
> sort.list and then change every call to that function to the new name.
> I guess this might break quite a few packages on CRAN.
>   

scary!  it's much preferred to confuse new users.

vQ



[Rd] [R] Semantics of sequences in R
Wacek Kusnierczyk