my @s=<1 2 3 2 3 4>;
say reduce {$^a < $^b}, @s;
say [<] @s;
# --------
# True
# False
Moje pytanie jest dwojakie: po pierwsze, dlaczego metaoperator redukcji przetwarza <
operatora inaczej? Wygląda na to, że metaop redukcji jest szacowany przy użyciu zmiennej, która przy pierwszej zmianie z prawdy na fałsz zachowuje tę zmianę, ponieważ:
say [\<] @s;
# ----------
# (True True True False False False)
Po drugie, chciałbym również użyć tego wewnątrz funkcji zmniejszania, tj. Wprowadzenia kodu w nawiasach klamrowych funkcji zmniejszania, aby dawał taki sam wynik jak meta operator redukcji. Jak mogę to zrobić? Dziękuję Ci.