See Original text in context
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»
See Original text in context
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.Mix.head.put; # OUTPUT: «c␉1»"aaabbc".comb.Mix.head.put; # OUTPUT: «a␉3»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)»
See Original text in context
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)»