Order two numerical lists: Difference between revisions
Content deleted Content added
→{{header|Perl 6}}: use built-in |
|||
Line 601: | Line 601: | ||
=={{header|Perl 6}}== |
=={{header|Perl 6}}== |
||
This is already a built-in comparison operator. |
|||
⚫ | |||
my @b = <1 2 4>; |
|||
say @a," before ",@b," = ", @a before @b; |
|||
@a = <1 2 4>; |
|||
<lang perl6>sub order_array(@a, @b) { |
|||
⚫ | |||
say @a," before ",@b," = ", @a before @b; |
|||
@a = <1 2>; |
|||
# zip the lists together and compare |
|||
@b = <1 2 4>; |
|||
say @a," before ",@b," = ", @a before @b; |
|||
return $i < $j if $i != $j; |
|||
} |
|||
# if it reach here, the lists are so far equal |
|||
@a < @b; # order by number of elements |
|||
} |
|||
for 1..10 { |
|||
⚫ | |||
my @ |
my @a = (^100).roll((2..3).pick); |
||
my @b = @a.map: { Bool.pick ?? $_ !! (^100).roll((0..2).pick) } |
|||
say @a," before ",@b," = ", @a before @b; |
|||
say order_array(@a,@b); # false |
|||
⚫ | |||
{{out}} |
|||
⚫ | |||
<pre>1 2 4 before 1 2 4 = False |
|||
1 2 4 before 1 2 = False |
|||
say order_array(@a,@b); # true |
|||
1 2 before 1 2 4 = True |
|||
⚫ | |||
63 52 before 0 52 = False |
|||
17 75 24 before 31 75 24 = True |
|||
43 32 before 43 32 = False |
|||
73 84 before 2 84 = False |
|||
73 92 before 40 24 46 = False |
|||
16 24 before 41 24 = True |
|||
9 12 22 before 9 12 32 67 = True |
|||
81 23 before 81 23 = False |
|||
55 53 1 before 55 62 83 = True |
|||
20 40 51 before 20 17 78 34 = False</pre> |
|||
=={{header|PicoLisp}}== |
=={{header|PicoLisp}}== |