Very nice Ben, your TT is “hard coded to rank 3”, so fails on other than rank 3.
I “tinkered” by replacing 0 1 2 with i. $ $, and converted to tacit using 13 : 
which worked, but less readable...

   ]a=:i.2 3 4
 0  1  2  3
 4  5  6  7
 8  9 10 11

12 13 14 15
16 17 18 19
20 21 22 23
   ]b=:i.2 2
0 1
2 3

   T=:{{((i. $ $ y)-.x) |: y}}        NB. Generalised 0 1 2 to (i. Rank y)

   0 1{1 T a
 0  1  2  3
12 13 14 15

 4  5  6  7
16 17 18 19

   0 1{1 T b                             NB. Your original function failed here 
on rank 2
0 2
1 3

   TT=:13 : '((i. $ $ y)-.x) |: y’
   TT
] |:~ [ -.~ [: i. [: # [: $ ]

   0 1{1 TT a
 0  1  2  3
12 13 14 15

 4  5  6  7
16 17 18 19

   0 1{1 TT b
0 2
1 3


Impressive solution Ben (strong scent of APL in there !)… well done.

Piet does this do what you want ?

Best, Rob

> On 7 Sep 2023, at 10:22 am, Ben Gorte <bgo...@gmail.com> wrote:
> 
> Still not quite sure what you mean, but how about:
> 
> ]n =: i.2 3 4
> 
> 0 1 2 3
> 
> 4 5 6 7
> 
> 8 9 10 11
> 
> 
> 12 13 14 15
> 
> 16 17 18 19
> 
> 20 21 22 23
> 
> 
> 1{0 T n NB. -: 1{n
> 
> 12 13 14 15
> 
> 16 17 18 19
> 
> 20 21 22 23
> 
> 
> 1{1 T n
> 
> 4 5 6 7
> 
> 16 17 18 19
> 
> 
> 1{2 T n
> 
> 1 5 9
> 
> 13 17 21
> 
> If that's the one, then T would be:
> 
> T =: {{ (0 1 2-.x) |: y }}
> 
> 
> (sorry, not tacit)
> 
> 
> Ben
> 
> On Thu, 7 Sept 2023 at 09:58, Piet de Jong <pietd...@gmail.com> wrote:
> 
>> This works!
>> Except the ordering of the axes is slightly unusual to my way of thinking.
>> For example suppose m=.i.3 3 3 is the “cube" be sliced and v is your verb.
>> Then the items of (0 v m) has successive items  “going back” into the cube.
>> The items (1 v m) are the horizontal slices.
>> The items of (2 v m) are the vertical slices.
>> 
>> The order of the last two appear "unnatural".  (To my way of thinking at
>> least)
>> This seems to beg the question what is the natural order when  slicing.
>> 
>>> On 7 Sep 2023, at 08:32, Henry Rich <henryhr...@gmail.com> wrote:
>>> 
>>> Since you want all the slices, what you are looking for is a transpose.
>>> 
>>> Maybe
>>> 
>>> ~.@(, i.@#) |: ]
>>> 
>>> Untested.
>>> 
>>> Henry Rich
>>> 
>>> On Wed, Sep 6, 2023, 6:10 PM Piet de Jong <pietd...@gmail.com> wrote:
>>> 
>>>> Here is my “wish"
>>>> 
>>>> A dyadic (tacit) verb such that x v y gives all the slices of y along
>>>> dimension x, where x is integer.   That is to say
>>>> 
>>>> i{ x v y
>>>> 
>>>> is slice i of the array y along dimension x.
>>>> 
>>>> Thanks for all your help!
>>>> 
>>>>> On 7 Sep 2023, at 08:04, 'robert therriault' via Programming <
>>>> programm...@jsoftware.com> wrote:
>>>>> 
>>>>> Or something like this?
>>>>> 
>>>>>  [n =. i. 2 2 2
>>>>> 0 1
>>>>> 2 3
>>>>> 
>>>>> 4 5
>>>>> 6 7
>>>>> ,./ n
>>>>> 0 1 4 5
>>>>> 2 3 6 7
>>>>> ($ $ (,@,./)) n
>>>>> 0 1
>>>>> 4 5
>>>>> 
>>>>> 2 3
>>>>> 6 7
>>>>> 
>>>>> Cheers, bob
>>>>> 
>>>>> 
>>>>>> On Sep 6, 2023, at 14:49, 'robert therriault' via Programming <
>>>> programm...@jsoftware.com> wrote:
>>>>>> 
>>>>>> Hi Piet,
>>>>>> 
>>>>>> Maybe show us what you would want to do with higher dimensions? Or a
>>>> less symmetric 2 dimensional shape?
>>>>>> 
>>>>>> For shape 2 2, I would use the even simpler
>>>>>> 
>>>>>> |: m
>>>>>> 0 2
>>>>>> 1 3
>>>>>> 
>>>>>> Hope this helps.
>>>>>> 
>>>>>> Cheers, bob
>>>>>> 
>>>>>>> On Sep 6, 2023, at 14:26, Brian Schott <schott.br...@gmail.com>
>> wrote:
>>>>>>> 
>>>>>>> ,./0 1 {"1  m
>>>>>> 
>>>>>> ----------------------------------------------------------------------
>>>>>> 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
>> 
>> ----------------------------------------------------------------------
>> 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