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