From h.wickham at gmail.com  Tue May  6 18:20:07 2014
From: h.wickham at gmail.com (Hadley Wickham)
Date: Tue, 6 May 2014 11:20:07 -0500
Subject: [Rd] Historical NA question
In-Reply-To: <4BBA43DC-39CB-4CCC-9172-E2318459FD77@gmail.com>
References: <CABdHhvFt2n6=ORLBSTYxkA_G+t_d_H=0B1+vhhM_ZFL_Z-RT3g@mail.gmail.com>
	<5366EAC6.9030109@yorku.ca> <53681944.9020606@fhcrc.org>
	<4BBA43DC-39CB-4CCC-9172-E2318459FD77@gmail.com>
Message-ID: <CABdHhvG+20Cx1ZKqNrK7HHMkiusChJFLiSW+Y_tFWrZMPr8umA@mail.gmail.com>

>> BTW, that %in% has precedence over arithmetic operations is surprising,
>> error-prone, and doesn't cover any reasonable use case (who needs to
>> multiply the logical vector returned by %in% by some value?) but that's
>> another story:
>
> The point here is that the %foo% operators all have the _same_ precedence. In principle, they can be user-coded, and there is no way to express what precedence is desirable. It may turn out slightly weird for %in%, but think of what would happen if %*% had lower precedence than addition.

This is getting way off topic, but I find the precedence of ! to be
more surprising:

> !F + !F
[1] FALSE

i.e. that's interpreted as !(F + !F) not (!F) + (!F).

Hadley

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



[Rd] Historical NA question
Hadley Wickham