The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#!/usr/bin/ruby
assert_eq([25,36,49] |>> :log |>> :exp |>> :sqrt |>> :round, [5, 6, 7])
func square(n) { n*n }
assert_eq([3,4,5] |>> square, [9, 16, 25])
assert_eq([3,4,5] |>> {_*_}, [9, 16, 25])
assert_eq([3,4,5] |>> square |>> :sqrt, [3,4,5])
assert_eq([3,4,5] |>> square |>> {.sqrt}, [3,4,5])
assert_eq([3,4,5] |>> [:pow, 2] |>> {.sqrt}, [3,4,5])
assert_eq([3,4,5] |>> [:pow, 2] |>> :sqrt, [3,4,5])
assert_eq([1,2,3] |>> (:ipow, 2), [1, 4, 9])
assert_eq([1,2,3] |>> [:ipow, 2], [1, 4, 9])
say "** Test passed!"