Raku Land

span

zef:lizmat

Actions Status

NAME

span - Provide Haskell's span functionality

SYNOPSIS

use span;

.say for span * < 10, 2, 2, 2, 5, 5, 7, 13, 9, 6, 2, 20, 4;
# (2 2 2 5 5 7)
# (13 9 6 2 20 4)

.say for span (* < 10, * < 20), 2, 2, 2, 5, 5, 7, 13, 9, 6, 2, 20, 4;
# (2 2 2 5 5 7)
# (13 9 6 2)
# (20 4)

.say for span Int, 2, 2, 2, 5, 5, "a", "b", "c";
# (2 2 2 5 5)
# (a b c)

DESCRIPTION

The span distribution exports a single subroutine span that mimics the functionality provided by Haskell's span functionality. But only if the core does not supply a span subroutine already (which it may at some point in the future).

The span subroutine takes a matcher much like grep does, which can be a Callable or any other object that can have the ACCEPTS method called on it.

AUTHOR

Elizabeth Mattijsen liz@raku.rocks

Source can be located at: https://github.com/lizmat/span . Comments and Pull Requests are welcome.

If you like this module, or what I’m doing more generally, committing to a small sponsorship would mean a great deal to me!

COPYRIGHT AND LICENSE

Copyright 2022 Elizabeth Mattijsen

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