Indeed, and that might have also been a partial motivation. That said, in J, incrementing or decrementing loop counters tends to be relatively rare (when compared to many other languages). This is because most primitives give you "loops for free" (actually, lower cost than free).
Thanks, -- Raul On Sun, Oct 15, 2017 at 4:18 PM, Erling Hellenäs <[email protected]> wrote: > Many programming languages have increment and decrement functions. You > incremented and decremented loop counters at the time. /Erling > > > On 2017-10-15 22:05, Erling Hellenäs wrote: >> >> J programmers are a special kind of programmers who create built in >> functions to save a blank. >> One of the few rules of J programming used to be to separate verbs by a >> blank. >> Without separation: >> 1+1 >> >:1 >> With separation: >> 1 + 1 >> >: 1 >> One blank shorter. >> /Erling >> >> On 2017-10-15 21:38, 'Mike Day' via Chat wrote: >>> >>> Not only Bayes - here's the shared Birthday Paradox, sometimes used to >>> impress or >>> amaze classes at school. It's classical stats, I think! >>> >>> Probability of two or more children in a sample of 22 or 23 sharing a >>> birthday, >>> assuming no leap-day birthdays, no twins, etc. >>> >>> Required probability = >>> (1 - probability of no-one sharing a birthday) = >>> 1 * prob second different from first >>> * prob third different from first two.... >>> = 1 (364/365) (363/365) ... >>> = (1 - 0%365) (1 - 1%365) (1 - 2%365) ... >>> >>> * &. -. / 365%~ i.22 NB. for 22 - not quite 50-50 >>> 0.475695 >>> >>> * &. -. / 365%~ i.23 NB. for 23 - just over 50-50 >>> 0.507297 >>> >>> */ &.: -. also works and is faster, but is more of a variant from >>> Raul's example >>> eg >>> */ &.: -. 365%~i.23 >>> >>> 0.507297 >>> >>> >>> >>> Perhaps redundancy is the reason for Linda Alvord's objection to @ and @: >>> ? >>> >>> Mike >>> >>> >>> >>> >>> >>> On 15/10/2017 17:04, Raul Miller wrote: >>>> >>>> It's interesting to note how J includes a fair bit of redundancy >>>> >>>> For example, we have - but we also have <: (which is -&1) and we have >>>> -. (which is 1&-). Why do we have these? >>>> >>>> Primarily, for educational contexts. It can be useful when teaching >>>> people to have specific words for commonly used operations. >>>> >>>> The underlying principle here, I think, is one of giving people >>>> multiple perspectives when relaying a concept. I think the hope is >>>> that at least some of it will "stick". >>>> >>>> But, also, for example, using -. for logical negation segues easily >>>> into bayesian probability. There, we do not simply have 1 and 0 for >>>> true and false, but we have a whole range of probabilities in between. >>>> We can keep using -. for logical negation (it becomes the probability >>>> of the event NOT happening), but we have to switch from *. to * for >>>> combing events. >>>> >>>> If A and B are independent probability variables then A*B is the >>>> probability that both are true. Similarly, if A and B are logical >>>> variables, then A*B is true if and only if both A and B are true. We >>>> can use * for logical AND. But the corresponding OR statement would be >>>> *&.-. >>>> >>>> And J does not define that "bayesian OR" as a primitive, perhaps in >>>> part to emphasize the need for understanding its derivation, perhaps >>>> in part because it's only 5 characters already to get the >>>> implementation and perhaps in part to emphasize the divide between >>>> probability and logic. >>>> >>>> Anyways, without -. we would instead need *&.(1&-) which is just a bit >>>> more unwieldy (but which, ok, would still work). >>>> >>>> Food for thought, perhaps... >>>> >>>> Thanks, >>>> >>> >>> >>> >>> --- >>> This email has been checked for viruses by Avast antivirus software. >>> https://www.avast.com/antivirus >>> ---------------------------------------------------------------------- >>> For information about J forums see http://www.jsoftware.com/forums.htm >> >> >> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > > > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
