Thanks a lot! I am going to refresh ranking and go back to work..

On Tue, Aug 9, 2011 at 11:02 PM, Don Guinn <[email protected]> wrote:

> The simplest way is to give the definition zero rank.
>
>   (=([:+/((0=((|~)([:>:[:i.-&1)))#([:>:[:i.-&1))))"0]10 12 28
> 0 0 1
>
> On Tue, Aug 9, 2011 at 1:54 PM, Uriel Zylbermann <
> [email protected]
> > wrote:
>
> > Hi, I'm new to J so my programs might be a bit more complicated than
> > needed,
> > I would be happy if you could tolerate that(and perhaps even give me
> fixes
> > when needed).
> >
> > anyway, I have a monad function that checks if a number is a perfect
> > number:
> >
> > (=([:+/((0=((|~)([:>:[:i.-&1)))#([:>:[:i.-&1))))
> >
> > this monad works for single numbers:
> >
> > (=([:+/((0=((|~)([:>:[:i.-&1)))#([:>:[:i.-&1))))10
> > 0
> > (=([:+/((0=((|~)([:>:[:i.-&1)))#([:>:[:i.-&1))))12
> > 0
> > (=([:+/((0=((|~)([:>:[:i.-&1)))#([:>:[:i.-&1))))28
> > 1
> >
> > but for lists it gives me a length error for some reason:
> >
> > (<([:+/((0=((|~)([:>:[:i.-&1)))#([:>:[:i.-&1))))10,12,28
> > |length error
> > | (<([:+/((0=((|~)([:>:[:i.-&1)))#([:>:[:i.-&1))))10,12,28
> > it was my understanding that a monad, when applied to a list, will work
> for
> > each element separately and then return the list of result, like this:
> >
> > >:i.10
> > 1 2 3 4 5 6 7 8 9 10
> >
> > I would be very grateful for any help understanding my error, thanks in
> > advance, Uriel.
> > ----------------------------------------------------------------------
> > 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

Reply via email to