RosettaCodeData/Task/Averages-Arithmetic-mean/UnixPipes/averages-arithmetic-mean.up
2023-07-01 13:44:08 -04:00

22 lines
348 B
Text

term() {
b=$1;res=$2
echo "scale=5;$res+$b" | bc
}
sum() {
(read B; res=$1;
test -n "$B" && (term $B $res) || (term 0 $res))
}
fold() {
func=$1
(while read a ; do
fold $func | $func $a
done)
}
mean() {
tee >(wc -l > count) | fold sum | xargs echo "scale=5;(1/" $(cat count) ") * " | bc
}
(echo 3; echo 1; echo 4) | mean