[R] new line between '}' and 'else' in function body
Yihui Xie
xieyihui at gmail.com
Fri Apr 3 11:25:04 CEST 2009
Thanks, Romain! So I think, for consistency, the following result
> deparse(parse(text = '
+ f = function(x) {
+ if (x) {
+ 1
+ } # a new line here!
+ else {
+ 2
+ }
+ }
+ ')
+ )
[1] "structure(expression(f = function(x) {" " if (x) {"
[3] " 1" " }"
[5] " else {" " 2"
[7] " }" "}), srcfile =
<environment>)"
should be
[1] "structure(expression(f = function(x) {" " if (x) {"
[3] " 1" " } else {"
[5] " 2" " }"
[7] "}), srcfile = <environment>)"
instead.
Regards,
Yihui
--
Yihui Xie <xieyihui at 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
On Fri, Apr 3, 2009 at 2:48 PM, Romain Francois
<romain.francois at dbmail.com> wrote:
> 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 <xieyihui at 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
>
>
>
More information about the R-help
mailing list