The monad ,/ should also work for this problem.
That it does not is a bug in the interpreter and
will be fixed for J6.02.
$ ,/ 1$'a' NB. wrong
1
append=: ,
$ append/ 1$'a' NB. correct
$ append/ 'a' NB. correct
append/ 'abc' NB. correct
abc
----- Original Message -----
From: Roger Hui <[EMAIL PROTECTED]>
Date: Saturday, April 7, 2007 10:25 am
Subject: Re: [Jprogramming] Singleton Reduction
> f=: {.^:(1=#)
> f 'abc'
> abc
> $ f 'a'
>
> $ f ,'a'
>
> f^:proprosition y is equivalent to
> if. proposition y do. f y else. y end.
>
>
>
> ----- Original Message -----
> From: "Leigh J. Halliwell" <[EMAIL PROTECTED]>
> Date: Saturday, April 7, 2007 10:14 am
> Subject: [Jprogramming] Singleton Reduction
>
> > Dear J Forum:
> >
> > Let X1 =. 'A' and X2 =. 1$'A'. Now X1 and X2 look equal, but
> > because of
> > different ranks X1 does not equal X2. I would like to reduce a
> > singleton to
> > an atom. If #X is 1, {.X does this. But I don't want to take
> the
> > firstitem, if the string has more than one item. Can someone
> tell
> > me a simple or
> > efficient tacit expression that reduces one-rank, one-item
> arrays
> > to atoms,
> > and leaves other one-rank arrays unchanged? Can it be done
> > without gerunds?
> > Thanks.
> >
> > Sincerely,
> >
> > Leigh
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm