Oh, duh... Thanks, not a bug -- instead, it's me getting the blocks backwards.
Should have been: Y=:2 :0(0 :0) : g=. x&(x`:6) (5!:1<'g') u y ) f=. u (1 :n) (5!:1<'f') f y ) Thanks for looking at this. -- Raul On Fri, Nov 30, 2018 at 4:08 PM Henry Rich <[email protected]> wrote: > > You are executing the derived verb from Y as a monad. You need to lose > the : in Y. > > Henry Rich > > > On 11/30/2018 4:05 PM, Raul Miller wrote: > > Sure... > > > > If I define: > > > > Y0=:1 :0 > > f=. u Defer > > (5!:1<'f') f y > > ) > > > > Defer=: 1 :0 > > : > > g=. x&(x`:6) > > (5!:1<'g') u y > > ) > > > > and I also define > > > > almost_factorial=: 4 :0 > > if. 0 >: y do. 1 > > else. y * x`:6 y-1 end. > > ) > > > > Then > > almost_factorial Y0 9 > > 362880 > > > > Similarly, if I define: > > > > Y2=:1 :0 > > f=. u f.1 :(':';'g=. x&(x`:6)';'(5!:1<''g'') u y') > > (5!:1<'f') f y > > ) > > > > Then > > almost_factorial Y2 9 > > 362880 > > > > But > > almost_factorial Y 9 > > |domain error > > > > Thanks, > > > > > --- > This email has been checked for viruses by AVG. > https://www.avg.com > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
