[Rd] when to use pairlist instead list

2010-12-06 Thread William Dunlap
I was writing some assertion tests for modelling-related
code I had written and was surprised to see one test
fail because the specials attribute of the output of
terms() is a pairlist instead of a list.  In 2.12.0
I get:

   dput(attr(terms(y~Spec(x1)+x2, specials=c(Spec)), specials))
  list(Spec = 2L)
all.equal(attr(terms(y~Spec(x1)+x2, specials=c(Spec)),
specials), list(Spec=2L))
  [1] Modes: pairlist, list
all.equal(attr(terms(y~Spec(x1)+x2, specials=c(Spec)),
specials), pairlist(Spec=2L))
  [1] TRUE
identical(attr(terms(y~Spec(x1)+x2, specials=c(Spec)),
specials), pairlist(Spec=2L))
  [1] TRUE

I was wondering if there was a reason for using pairlist
instead of list here or it it was just an historical
artifact.  In general, when should one use pairlists?

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com 

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] when to use pairlist instead list

2010-12-06 Thread Prof Brian Ripley

On Mon, 6 Dec 2010, William Dunlap wrote:


I was writing some assertion tests for modelling-related
code I had written and was surprised to see one test
fail because the specials attribute of the output of
terms() is a pairlist instead of a list.  In 2.12.0
I get:

  dput(attr(terms(y~Spec(x1)+x2, specials=c(Spec)), specials))
 list(Spec = 2L)
   all.equal(attr(terms(y~Spec(x1)+x2, specials=c(Spec)),
specials), list(Spec=2L))
 [1] Modes: pairlist, list
   all.equal(attr(terms(y~Spec(x1)+x2, specials=c(Spec)),
specials), pairlist(Spec=2L))
 [1] TRUE
   identical(attr(terms(y~Spec(x1)+x2, specials=c(Spec)),
specials), pairlist(Spec=2L))
 [1] TRUE

I was wondering if there was a reason for using pairlist
instead of list here or it it was just an historical
artifact.  In general, when should one use pairlists?


Probably never directly.  But indirectly, a lot as for example 
argument lists are pairlists.


Looking at the code, I think this one is simply history.  For 
completeness I will correct ?terms.object.


--
Brian D. Ripley,  rip...@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel:  +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UKFax:  +44 1865 272595

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel