In Supply§
See primary documentation in context for method head
multi method head(Supply:)multi method head(Supply: Callable )multi method head(Supply: \limit)
Creates a "head" supply with the same semantics as List.head.
my = Supply.from-list(4, 10, 3, 2);my = .head(2);.tap(); # OUTPUT: «410»
Since release 2020.07, A WhateverCode
can be used also, again with the same semantics as List.head
my = Supply.from-list(4, 10, 3, 2, 1);my = .head( * - 2);.tap(); # OUTPUT: «4103»
In Any§
See primary documentation in context for routine head
multi method head(Any:) is rawmulti method head(Any: Callable )multi method head(Any: )
Returns either the first element in the object, or the first $n
if that's used.
"aaabbc".comb.head.put; # OUTPUT: «a»say ^10 .head(5); # OUTPUT: «(0 1 2 3 4)»say ^∞ .head(5); # OUTPUT: «(0 1 2 3 4)»say ^10 .head; # OUTPUT: «0»say ^∞ .head; # OUTPUT: «0»
In the first two cases, the results are different since there's no defined order in Mix
es. In the other cases, it returns a Seq
. A Callable
can be used to return all but the last elements:
say (^10).head( * - 3 );# OUTPUT: «(0 1 2 3 4 5 6)»
As of release 2022.07 of the Rakudo compiler, there is also a "sub" version of head
.
multi head(\specifier, +values)
It must have the head specifier as the first argument. The rest of the arguments are turned into a Seq
and then have the head
method called on it.
In List§
See primary documentation in context for method head
multi method head(Any:) is rawmulti method head(Any: Callable )multi method head(Any: )
This method is directly inherited from Any
, and it returns the first $n
items of the list, an empty list if $n
<= 0, or the first element with no argument. The version that takes a Callable
uses a WhateverCode
to specify all elements, starting from the first, but the last ones.
Examples:
say <a b c d e>.head ; # OUTPUT: «a»say <a b c d e>.head(2); # OUTPUT: «(a b)»say <a b c d e>.head(*-3); # OUTPUT: «(a b)»