J言語では分数を扱えて便利ですが、分数は分数の不便さがあって、直感的には大きさがわかりません。
二分の三と三分の四はどちらが大きいかというと二分の三は1.5で三分の四は1.333なので二分の三の方が大きい。
J言語で分数をソートできるか実験してみました。
2r1 3r2 4r3 3r4 2r5 2 3r2 4r3 3r4 2r5 x:^:_1 (2r1 3r2 4r3 3r4 2r5) 2 1.5 1.33333 0.75 0.4 /:~ x:^:_1 (2r1 3r2 4r3 3r4 2r5) 0.4 0.75 1.33333 1.5 2 /:~ 2r1 3r2 4r3 3r4 2r5 2r5 3r4 4r3 3r2 2 (/:{]) 2r1 3r2 4r3 3r4 2r5 2r5 3r4 4r3 3r2 2
分数のままで問題なくソートできました。
ソートに使った/:~(スラッシュコロンチルダ)という関数は/:(スラッシュコロン)で生成した並び替えのための数列を自分自身に作用させてソートされた結果を得るものです。
同じ大きさのものがあったらどうなるか? 実験。
/:~ 2r1 3r2 4r3 3r4 2r5 3r2 2r5 3r4 4r3 3r2 3r2 2 /: 2r1 3r2 4r3 3r4 2r5 3r2 4 3 2 1 5 0
同じ大きさでも出現順に順をつけるようですね。
以上