From h.wickham at gmail.com  Wed Sep  2 21:02:06 2009
From: h.wickham at gmail.com (hadley wickham)
Date: Wed, 2 Sep 2009 14:02:06 -0500
Subject: [Rd] Documentation for is.atomic and is.recursive
In-Reply-To: <8b356f880909021154r22b8d14ajd7627fcf3263b444@mail.gmail.com>
References: <8b356f880909021139pa07d922q1f1c28a0fb70cdbe@mail.gmail.com> 
	<8b356f880909021154r22b8d14ajd7627fcf3263b444@mail.gmail.com>
Message-ID: <f8e6ff050909021202g6c16d013rc1698b2170cd041d@mail.gmail.com>

On Wed, Sep 2, 2009 at 1:54 PM, Stavros Macrakis<macrakis at alum.mit.edu> wrote:
> On Wed, Sep 2, 2009 at 2:39 PM, Stavros Macrakis<macrakis at alum.mit.edu> wrote:
>
>> ???? Most types of language objects are regarded as recursive: those
>> ???? which are not are the atomic vector types, 'NULL' and symbols (as
>> ???? given by 'as.name').
>>
>> But is.recursive(as.name('foo')) == is.recursive(quote(foo)) == FALSE.
>
> Sorry, this *is* consistent with the behavior. ?But if we read "the
> atomic vector types, 'NULL' and symbols" as a list of mutually
> exclusive categories, then is.atomic(NULL)==FALSE is inconsistent.

And the sentence could be more clearly written as:

Most types of language objects are regarded as recursive, except for
atomic vector types, 'NULL' and symbols (as given by 'as.name').

Hadley


-- 
http://had.co.nz/



[Rd] Documentation for is.atomic and is.recursive
hadley wickham