Thanks, and of course. Mine was a knee jerk reaction to some COBOL code long ago from a young programmer who, having not yet mastered the intricacies of a "go to depending on" clause, instead had several pages of "if x = 1..." through "if x = 77..." statements.
> On Dec 11, 2019, at 11:09 AM, Raul Miller <[email protected]> wrote: > > https://www.jsoftware.com/help/dictionary/csel.htm > > But, also, https://www.jsoftware.com/help/dictionary/d520.htm and > https://www.jsoftware.com/help/dictionary/d621.htm > > But it's usually not wise to make efficiency claims which are not > supported by benchmarks. > > And, benchmarks tend to be specific to workloads and implementation > versions (with a plausible exception when the timing differences > exceed a factor of 2). > > Thanks, > > -- > Raul > >> On Wed, Dec 11, 2019 at 11:05 AM 'Jim Russell' via Programming >> <[email protected]> wrote: >> >> Yes but... >> I'd contend that a string of tests is usually less efficient than (perhaps >> calculating) some numeric value that is amenable to a case statement. ( I >> should have checked first; J does have a case statement, does it not?) >> >>>> On Dec 11, 2019, at 10:32 AM, Henry Rich <[email protected]> wrote: >>> >>> Yes. >>> >>> Henry Rich >>> >>>> On 12/11/2019 5:46 AM, 'Mike Day' via Programming wrote: >>>> So is it still ok in J9 - and will it be ok - to continue using the >>>> following paradigm? >>>> >>>> if. T do. B >>>> elseif. T1 do. B1 >>>> elseif. T2 do. B2 >>>> end. >>>> >>>> Thanks, >>>> >>>> Mike >>>> >>>> >>>>> On 11/12/2019 10:23, Henry Rich wrote: >>>>> else. after elseif. is new in 9.01, and you found a bug in it. >>>>> >>>>> JfC is for J6.02. >>>>> >>>>> Henry Rich >>>>> >>>>> On 12/10/2019 8:23 PM, Ben Gorte wrote: >>>>>> Hi, >>>>>> >>>>>> Despite repeated warnings in JforC I stepped into the trap of using >>>>>> elseif. >>>>>> and else. in the same if.-statement. It took some effort to find that >>>>>> error, because the behaviour is kind of weird: >>>>>> >>>>>> iftest =: 3 : 0 >>>>>> if. y=1 do. >>>>>> echo 'one' >>>>>> elseif. y=2 do. >>>>>> echo 'two' >>>>>> elseif. y=3 do. >>>>>> echo 'three' >>>>>> else. NB. should be elseif. do. >>>>>> echo 'other' >>>>>> end. >>>>>> ) >>>>>> >>>>>> iftest 1 >>>>>> one >>>>>> other >>>>>> iftest 2 >>>>>> two >>>>>> other >>>>>> iftest 3 >>>>>> three >>>>>> iftest 4 >>>>>> other >>>>>> >>>>>> Wouldn't it be possible to have that working like expected? Or elseif do >>>>>> flag an error? >>>>>> >>>>>> Greetings, >>>>>> Ben >>>>>> ---------------------------------------------------------------------- >>>>>> 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 >> >> ---------------------------------------------------------------------- >> 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
