Help / Phrases / 6. C. Grading
< Help
Jump to navigation
Jump to search
>> << Pri JfC LJ Phr Dic Voc !: Rel NuVoc wd Help Phrases
6C. Grading
Grading is the assignment of an ordinal number to each item of an array, with all numbers distinct, and with the earliest of equal values being assigned a lower ordinal number. Grading can be used to produce the permutation that will put an array in order. Since sorting is a primitive operation in J, grading is more commonly used to put a companion array into an order derived from another array. For example, a table of addresses may be put into an order derived from a table of last names.
m0=: /: | Grade y up |
m1=: \: | Grade y down |
d2=: /:@i. | Grade y up according to key x |
d3=: \:@i. | Grade y down according to key x |
y=:'leap','note',:'file' (] ; m0 ; (m0 { ]) ; m1 ; (m1 { ])) y +----+-----+----+-----+----+ |leap|2 0 1|file|1 0 2|note| |note| |leap| |leap| |file| |note| |file| +----+-----+----+-----+----+ x=: ' abcdefghijklmnopqrstuvwxyz' [ y=: 'senator' x (d2 ; (d2{]) ; d3 ; (d3{])) y +-------------+-------+-------------+-------+ |3 1 2 5 6 0 4|aenorst|4 0 6 5 2 1 3|tsronea| +-------------+-------+-------------+-------+