Red.git | lib/Red/ | ResultSeqMethods.rakumod
use Red::AST::Function;
unit role Red::ResultSeqMethods;
sub __RED_OPERATOR_LOADED__ { True }
method !agg(Str $func, &block) {
my $*RED-FALLBACK = False;
self.map({
my @args = block $_;
Red::AST::Function.new: :$func, :@args
}).ast: :sub-select
}
method min(&block) {
self!agg("min", &block)
}
method max(&block) {
self!agg("max", &block)
}
method sum(&block) {
self!agg("sum", &block)
}
method exists {
Red::AST::Function.new: args => [$.ast], func => 'EXISTS'
}
method is-empty {
self.map({ 1 }).exists.not
}