From p.dalgaard at biostat.ku.dk  Wed Jul  7 00:54:51 2004
From: p.dalgaard at biostat.ku.dk (Peter Dalgaard)
Date: Wed Jul  7 00:56:18 2004
Subject: [Rd] Wrong object type produced - LANGSXP should be LISTSXP
	(PR#7055)
In-Reply-To: <20040706182507.2731B108D8@slim.kubism.ku.dk>
References: <20040706182507.2731B108D8@slim.kubism.ku.dk>
Message-ID: <x23c44pwzo.fsf@biostat.ku.dk>

bauerda@ieee.org writes:

> Full_Name: David Bauer
> Version: 1.9
> OS: Linux
> Submission from: (NULL) (160.91.245.8)
> 
> 
> In the file gram.y, the xxsubscript function generates a LANGSXP with another
> LANGSXP as its CDR.  I believe that this is a mistake and that the second
> LANGSXP should be a LISTSXP.  The inputs a1, a3 are parameters to the subscript
> function (a2), and as such they should be in a dotted-pair list.

Hmmm. Probably true in principle (as far as I can see, corresponding
logic for funcalls does make the argument list an ordinary pairlist,
not a language object). However, is it not a victimless crime? I can't
think of a way to make it matter at the R level. It's the sort of thing
that you tend not to want to fix if it isn't broken...

Notice that 

z <- quote(x[2])
mode(z[-1])

returns call, but the same is true of any function call (and that's
kind of weird, but a consequence of a general rule that [-indexing
returns an object of the same mode as the original).

[snip...] 
> -       PROTECT(ans = LCONS(a2, LCONS(a1, CDR(a3))));
> +       PROTECT(ans = LCONS(a2, CONS(a1, CDR(a3))));


-- 
   O__  ---- Peter Dalgaard             Blegdamsvej 3  
  c/ /'_ --- Dept. of Biostatistics     2200 Cph. N   
 (*) \(*) -- University of Copenhagen   Denmark      Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard@biostat.ku.dk)             FAX: (+45) 35327907


[Rd] Wrong object type produced - LANGSXP should be LISTSXP (PR#7055)
Peter Dalgaard