On 15-Jan-10 08:14:04, Barry Rowlingson wrote: > On Fri, Jan 15, 2010 at 6:57 AM, Ted Harding > <ted.hard...@manchester.ac.uk>wrote: >> >> There is at least one context where the distinction must be >> preserved. Example: >> >> pnorm(1.5) >> # [1] 0.9331928 >> pnorm(x=1.5) >> # Error in pnorm(x = 1.5) : unused argument(s) (x = 1.5) >> pnorm(x<-1.5) >> # [1] 0.9331928 >> x >> # [1] 1.5 >> >> Ted. >> > I would regard modifying a variable within the parameters of a > function call as pretty tasteless. What does: > > foo(x<-2,x) > or > foo(x,x<-3) > > do that couldn't be done clearer with two lines of code? > > Remember: 'eschew obfuscation'. > > Barry
Tasteless or not, the language allows it to be done; and therefore discussion of distinctions between ways of doing it is relevant to Erin's question! While I am at it, in addition to the above example, we can have x <- 1.234 sqrt(x=4) # [1] 2 x # [1] 1.234 compared with (as in the first example): x <- 1.234 sqrt(x<-4) # [1] 2 x # [1] 4 There is a passage in ?"<-" (which I don't completely understand) which is also relevant to Erin's query about '=' vs '<-': The operators '<-' and '=' assign into the environment in which they are evaluated. The operator '<-' can be used anywhere, whereas the operator '=' is only allowed at the top level (e.g., in the complete expression typed at the command prompt) or as one of the subexpressions in a braced list of expressions. (I'm not too clear about the scope of "one of the subexpressions in a braced list of expressions"). Ted. -------------------------------------------------------------------- E-Mail: (Ted Harding) <ted.hard...@manchester.ac.uk> Fax-to-email: +44 (0)870 094 0861 Date: 15-Jan-10 Time: 09:08:41 ------------------------------ XFMail ------------------------------ ______________________________________________ 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.