Steve (and any others still paying attention to this thread), Larry Wall (author of Perl) said something along the lines of:
things that are similar should look similar, things that are different should look different. Ironically one of the first places I saw that quote was in a Perl vs. Python language war and the same quote was being used by both sides. This made me think that you can learn a lot about how programmers think by what they make look similar and what they make look different (and therefore what they think are similar and different). In R, I see the assignments: foo( x <- something ) as assign to the variable x in the current (or calling) environment and foo( x = something ) as assign to the variable x in the environment created by the function call. With this distinction only "<-" makes any sense at the top level, but then I see assigning to the 2 different environments as 2 different things that should look different. Using "=" for assignment makes sense if (and only if) you consider assigning into different environments to be the same (or at least very similar) thing. Also you mentioned that foo( x <- something ) should always be written as: x <- something foo(x) and for many cases I agree, but consider the counter example of: system.time( out <- longRunningSimulationFunction(n=1e6) ) compared to: out = longRunningSimulationFunction(n=1e6) system.time(out) I would argue that the 1st version is much more useful than the 2nd. On Mon, Feb 2, 2015 at 6:57 PM, Steve Taylor <steve.tay...@aut.ac.nz> wrote: > Responding to several messages in this thread... > > > > All the more reason to use = instead of <- > > Definitely not! > > Martin and Rolf are right, it's not a reason for that; I wrote that > quickly without thinking it through. An "=" user might be more likely to > fall for the gotcha, if not spacing their code nicely. So the lesson > learned from the gotcha is that it's good to space your code nicely, as > others have siad, not which assignment symbol to use. > > However, I continue to use "=" for assignment on a daily basis without any > problems, as I have done for many years. I remain unconvinced by any and > all of these arguments against it in favour of "<-". People telling me > that I "should" use the arrow need better agruments than what I've seen so > far. > > I find "<-" ugly and "->" useless/pointless, whereas "=" is simpler and > also nicely familiar from my experience in other languages. It doesn't > matter to me that "=" is not commutative because I don't need it to be. > > > Further it can be nicely marked up by a real "left arrow" > > by e.g. the listings LaTeX 'listings' package... > > Now that's just silly, turning R code into graphical characters that are > not part of the R language. > > > foo(x = y) and foo(x <- y) > > I'm well aware of this distinction and it never causes me any problems. > The latter is an example of bad (obfuscated) coding, IMHO; it should be > done in two lines for clarity as follows: > > x = y > foo(x) > > > Using = has it's problems too. > Same goes for apostrophes. > > Shall we discuss putting "else" at the start of line next? > > cheers, > Steve > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > -- Gregory (Greg) L. Snow Ph.D. 538...@gmail.com [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.