Hi Jürgen, many thanks for clarification - yep, that makes sense, that the function by itself forces, whether it is niladic/monadic/dyadic.
br Otto Dr. Jürgen Sauermann <mail@jürgen-sauermann.de> writes: > Hi Otto, > > simple answer: {3} is niladic in GNU APL (since lack of ⍵) and monadic > (why?) in Dyalog et al. > > To get the Dyalog behaviour in GNU APL use {3⊣⍵} instead of {3}: > > {3⊣⍵} ¨⍳5 > 3 3 3 3 3 > > That makes the lambda monadic in GNU APL and discards its argument > like Dyalog does. You will get the same SYNTAX ERROR in Dyalog if you > call EACH with a niladic function (except that it can't be a lambda then): > > ⎕FX 'Z←FOO' 'Z←3' > FOO¨⍳5 > SYNTAX ERROR > FOO¨⍳5 > ∧ > > I personally believe that there should be no differences between "normal" > defined functions (with ⎕FX or the ∇-editor) and lambda, but that opinion > is not shared unanimously. > > Best Regards, > Jürgen > > On 1/3/21 2:32 PM, Otto Diesenbacher-Reinmüller wrote: > > Dear APLers, > > I don't think this is a bug, but intentionally: > > Doing f.e.: > > { 3 } ¨ ⍳5 > > results in gnu-apl to an error: > > SYNTAX ERROR > λ1¨⍳5 > ^ ^ > > In other APLs, this works just fine, f.e. dyalog (or even april): > > { 3 } ¨ ⍳5 > 3 3 3 3 3 > > More general without Each/¨, f.e. > { 3 } 55 > > results in gnu-apl in > > 3 55 > > but in dyalog (and others) in > > 3 > > What's the background of this different behavior in gnu-apl? I also > couldn't find any hint in IBMs APL2 Reference for this behavior. > > br & and many thanks for any hint! > > br Otto -- Dipl. Ing. (FH) Otto Diesenbacher-Reinmüller diesenbacher.net Salzburg, Österreich