My solution works by preparing a left argument for From { .  It has rank two 
solutions and is limited to string arguments.

    cross
 ([: (+. |."1) [: (= * >:) [: i. #) { ' ' , ]
    cross 'aaaaa'
 a   a
  a a 
   a  
  a a 
 a   a

Kip Murray

Sent from my iPad


On Dec 10, 2012, at 1:48 PM, Raul Miller <[email protected]> wrote:

> And, for what it's worth, here's a different plausible implementation
> of cross (different only for the case of duplicated letters in the
> argument when compared with the version I posted, below):
> 
>   (,@(#~"0"1) (+.|.)@=@(#\)) 'abcdedcba'
> 
> Note that replacing = with =@(#\) should also work for Aai's original version.
> 
> FYI,
> 
> -- 
> Raul
> 
> On Mon, Dec 10, 2012 at 1:28 PM, Raul Miller <[email protected]> wrote:
>> Here's a version that works with duplicated values (except note that
>> there was no specification for what the behavior should be in this
>> case):
>> 
>>   (,@(#~"0"1) (+.|.)@=)'abcde'
>> a   e
>> b d
>>  c
>> b d
>> a   e
>> 
>>   (,@(#~"0"1) (+.|.)@=)'abcdedcba'
>> a   e   a
>> b d d b
>>  c   c
>> b d d b
>> a   e   a
>> 
>> --
>> Raul
>> 
>> On Mon, Dec 10, 2012 at 1:21 PM, Roger Hui <[email protected]> wrote:
>>> The expression fails if the argument has duplicate items. e.g.
>>> 
>>>   ((+.|.)@={"0 1 ' '&,.)'aabbb'
>>> |length error
>>> |       ((+.|.)@={"0 1' '&,.)'aabbb'
>>> 
>>> 
>>> 
>>> On Mon, Dec 10, 2012 at 10:18 AM, bob therriault 
>>> <[email protected]>wrote:
>>> 
>>>> That is lovely Arie,
>>>> 
>>>> It is that kind of elegance that I was chasing with my rougher attempts.
>>>> 
>>>> Using the (+.|.) hook simplifies (|.+.]) precisely and the {" 0 1
>>>> combined with ' '&,. means that the selection of the string becomes a
>>>> choice in each row of displaying either the corresponding element of the
>>>> string or a blank.
>>>> 
>>>> Cheers, bob
>>>> 
>>>> On 2012-12-10, at 1:11 AM, Aai wrote:
>>>> 
>>>>> ((+.|.)@={"0 1 ' '&,.)'abcde'
>>>> 
>>>> ----------------------------------------------------------------------
>>>> 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

Reply via email to