[Rd] stopifnot() does not stop at first non-TRUE argument

luke-tierney at uiowa.edu luke-tierney at uiowa.edu
Tue May 16 16:40:19 CEST 2017


On Tue, 16 May 2017, Serguei Sokol wrote:

> Le 15/05/2017 à 19:41, luke-tierney at uiowa.edu a écrit :
>> This is getting pretty convoluted.
>> 
>> The current behavior is consistent with the description at the top of
>> the help page -- it does not promise to stop evaluation once the first
>> non-TRUE is found.
> Hm... we can read in the man page :
> ‘stopifnot(A, B)’ is conceptually equivalent to
>
>      { if(any(is.na(A)) || !all(A)) stop(...);
>        if(any(is.na(B)) || !all(B)) stop(...) }
> and this behavior does promise to stop at first non-TRUE value
> without evaluation of the rest of conditions.

Yes: that is why I explicitly referenced the description at the top of
the page.

Changing the 'conceptually equivalent' bit to reflect what is
happening is easy.  The changes being discussed, and their long term
maintenance, ar not.

Best,

luke


>
> Sergueï.
>

-- 
Luke Tierney
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa                  Phone:             319-335-3386
Department of Statistics and        Fax:               319-335-3017
    Actuarial Science
241 Schaeffer Hall                  email:   luke-tierney at uiowa.edu
Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu


More information about the R-devel mailing list