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