Hi,

That's because the parser knows how to deal with that stuff. However, when you type the same if/else at the command line, it will be parsed line by line, and the evaluator will not wait for the else to evaluate the if. Try to copy and paste your if/else to the command line.

Romain


Yihui Xie wrote:
Hi list members,

?"else" tells us

     In particular, you should not have a newline between '}' and
     'else' to avoid a syntax error in entering a 'if ... else'
     construct at the keyboard or via 'source'.

but there's no syntax error when you break the line between "}" and
"else" in a function, e.g.

f = function(x) {
    if (x) {
        1
    } # a new line here!
    else {
        2
    }
}

f(TRUE)
[1] 1
f(FALSE)
[1] 2

Seems strange...

Regards,
Yihui
--
Yihui Xie <xieyi...@gmail.com>
Phone: +86-(0)10-82509086 Fax: +86-(0)10-82509086
Mobile: +86-15810805877
Homepage: http://www.yihui.name
School of Statistics, Room 1037, Mingde Main Building,
Renmin University of China, Beijing, 100872, China


--
Romain Francois
Independent R Consultant
+33(0) 6 28 91 30 30
http://romainfrancois.blog.free.fr

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to