README

NAME

List::Allmax - Find all of the maximum or minimum elements of a list.

SYNOPSIS

use List::Allmax;

say (^20).roll(50).&all-max;     # values

say (^20).roll(50).&all-min: :k; # keys

say [1,2,3,4,5,5,4,3,2,1,2,2,5,4,4].classify({$_}).sort.List.&all-max( :by(+*.value) );
# [2 => [2,2,2,2], 4 => [4,4,4,4]]

DESCRIPTION

Raku provides max and min routines to find the maximum or minimum elements of a list. If there is more than one value that evaluates to the maximum, (minimum) only the first is reported, no matter how many there may be. This module provides a remedy for that.

Provides the routines all-max() and all-min() that return all of the elements that evaluate to maximum or minimum value.

Similar to the built-ins, you may request either a list of values or a list of indicies (keys) where those values are located.

If you want to compare based on something other than the values of the individual elements, supply a named :by() Callable block to be used as an evaluator. Defaults to {$_} (self).

Note: Only operates on Positional objects. If want to use it on a Hash or some other Associative type, coerce to a Listy type object first.

AUTHOR

Stephen Schulze (aka thundergnat [email protected])

COPYRIGHT AND LICENSE

Copyright 2023 thundergnat

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.

List::Allmax v0.0.1

Find all of the maximum or minimum elements of a list.

Authors

  • thundergnat

License

Artistic-2.0

Dependencies

Test Dependencies

Provides

  • List::Allmax

Documentation

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.