func fs(f) { func(*args) { args.map {f(_)} } } func double(n) { n * 2 }; func square(n) { n ** 2 }; var fs_double = fs(double); var fs_square = fs(square); var s = (0 .. 3); say "fs_double(#{s}): #{fs_double(s...)}"; say "fs_square(#{s}): #{fs_square(s...)}"; s = [2, 4, 6, 8]; say "fs_double(#{s}): #{fs_double(s...)}"; say "fs_square(#{s}): #{fs_square(s...)}";