It used to be that x was more ambiguous. To make quicksort work, use sel=: 1 : 'u # ['
I will update the wiki. Thanks, -- Raul On Tue, Dec 13, 2022 at 1:43 PM Jaume <greenni...@gmail.com> wrote: > > Hello all > > Still here and I've done all the days in J except for day 7, But that's not > why I'm here. > > So now I've done the first part, and I have a function that is too long to > copy that does comparisons in an iterative way (I had some stack problems). > Now I'm wanting to sort the elements using this function, but I don't know > how. > > All the sorting is done using the standard comparison, all the grading is > numerical, the quicksort implementation in > https://www.jsoftware.com/help/dictionary/cif.htm (and in > https://code.jsoftware.com/wiki/Essays/Quicksort) is giving me an error > even when trying with numbers. > > sel=: 1 : 'x # [' > > quicksort=: 3 : 0 > > if. 1 >: #y do. y > > else. > > (quicksort y <sel e),(y =sel e),quicksort y >sel e=.y{~?#y > > end. > > ) > > quicksort 15 2 9 10 4 0 13 13 18 7 > > |noun result was required: quicksort > > | x#[ > > |[-0] > > > And the tacit version, which I hope I modified correctly, it's also giving > me a stack error. > > less=:{{x comp2 y}} > > great=:{{y comp2 x}} > > quicksort=: (($:@(less#[) , (=#[) , $:@(great#[)) ({~ ?@#)) ^: (1<#) > > quicksort pp > > |stack error: comp2 > > | y comp2 x > > > Any idea how can I sort the elements or correct the errors I have? > > Thanks > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm