As far as I can understand, Julia also seems trying to attract people from Matlab, because there are so many similarities in the syntax (.* and ./ etc) and the names of functions.
Also I often see questions from Matlab users posted in StackOverflow. Their codes are rather Matlab-like, but it works anyway. I guess this helps people to try a new language with lower barrier. (Though, personally, I don't like ".*" notation very much. But I can live with it.) As for =, I also prefer using = for counters (for i = 1:n) and "in" for other containers. I use Fortran and Python most often for research work, but I feel "=" is quite natural for indicating that the index goes from 1 to n. On the other hand, with "in", I feel like the entity is just somewhere inside the container, with no particular order enforced (even if it has a definite order). My familiarity with "=" is probably coming from old languages (including C-like ones), but that aside, I hope "=" remains a valid symbol for this. So anyway, +1 for the comments from Glen O. On Wednesday, October 28, 2015 at 3:20:19 AM UTC+9, FANG Colin wrote: > > Julia tries to attract people from Python & R, which use `in`. As for > matlab, it is not a direct competitor. > > Anyway, I think we only need 1 of the 2. "There should be one-- and > preferably only one --obvious way to do it." > > Maybe enhance the documentation for the time being. > > > On 27 October 2015 at 16:38, Glen O <[email protected] <javascript:>> > wrote: > >> "When calculating a Fibonacci number, we have to apply >> F_n=F_(n-1)+F_(n-2) repeatedly. So to find F_6, we apply the equation for n >> equals 3 through 6". Writing it as "for n in 3 through 6" or "for n in the >> range 3 through 6" wouldn't make nearly as much sense. >> >> As I said, for general iterables, like vectors, the "in" keyword makes >> more sense. But when you're talking about a counter variable, equals makes >> a much more natural expression - you're not really constructing the range >> object, you're just telling the program you want the counter to start at >> the first value, and increment until it reaches the second value. >> >> On Wednesday, 28 October 2015 02:23:54 UTC+10, Tom Breloff wrote: >>> >>> It definitely makes sense for a range. >>> >>> >>> Sorry... gotta disagree... mathematical set notation is more >>> appropriate, especially for scientific computing. This is coming from a >>> former matlab user, btw, so it's not like I was confused by the syntax. >>> The "for i = 1:5" syntax is actually more reminiscent of C: "for (int i=1; >>> i<=5; i++)", and I'm guessing that the syntax originated more from that >>> rather than scientific concepts. >>> >>> On Tue, Oct 27, 2015 at 11:58 AM, feza <[email protected]> wrote: >>> >>>> +1 @Tom Breloff . >>>> I was confused about this when starting out. Comparing `for i in >>>> 1:3` vs `for i = 1:3`, even though I regularly use matlab if you think >>>> about it for `i = 1:10` doesn't really make a lot of sense. It would be >>>> nice if it was just one way as opposed to the confusion about whether = or >>>> in should be used. >>>> >>>> On Tuesday, October 27, 2015 at 10:26:44 AM UTC-4, Tom Breloff wrote: >>>>> >>>>> It's harmless, sure, but I would prefer that everyone uses "in" >>>>> exclusively so that there's one less thing to waste brainpower on. You >>>>> don't say "for each x equals the range 1 to n", you say "for each x in >>>>> the >>>>> range 1 to n". I don't think "=" has a place here at all except to allow >>>>> copy/pasting of Matlab code (which creates other performance problems >>>>> anyways). >>>>> >>>>> On Tue, Oct 27, 2015 at 10:04 AM, Stefan Karpinski < >>>>> [email protected]> wrote: >>>>> >>>>>> My general approach is to only use = when the RHS is an explicit >>>>>> range, as in `for i = 1:n`. For everything else I use `for i in v`. I >>>>>> would >>>>>> be ok with dropping the = syntax at some point, but it seems pretty >>>>>> harmless to have it. >>>>>> >>>>>> On Tue, Oct 27, 2015 at 8:56 AM, FANG Colin <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Thank you. In that case I will happily stick with `in`. >>>>>>> >>>>>>> >>>>>>> On Monday, October 26, 2015 at 8:43:22 PM UTC, Alireza Nejati wrote: >>>>>>>> >>>>>>>> There is no difference, as far as I know. >>>>>>>> >>>>>>>> '=' seems to be used more for explicit ranges (i = 1:5) and 'in' >>>>>>>> seems to be used more for variables (i in mylist). But using 'in' for >>>>>>>> everything is ok too. >>>>>>>> >>>>>>>> The '=' is there for familiarity with matlab. Remember that julia's >>>>>>>> syntax was in part designed to be familiar to matlab users. >>>>>>>> >>>>>>>> On Tuesday, October 27, 2015 at 8:26:07 AM UTC+13, FANG Colin wrote: >>>>>>>>> >>>>>>>>> Hi All >>>>>>>>> >>>>>>>>> I have got a stupid question: >>>>>>>>> >>>>>>>>> Are there any difference in "for i in 1:5" and "for i = 1:5"? >>>>>>>>> >>>>>>>>> Does the julia community prefer one to the other? I see use of >>>>>>>>> both in the documentations and source code. >>>>>>>>> >>>>>>>>> Personally I haven't seen much use of "for i = 1:5" in other >>>>>>>>> languages. >>>>>>>>> >>>>>>>>> Thanks. >>>>>>>>> >>>>>>>> >>>>>> >>>>> >>> >
