Use functional function

In this example we will see how to use functional function.

If your input looks like

1
5
7
-6

You can use jawk like:

jawk \
    -o csv \
    --select '.=number' \
    --select '(fold (.range) 1 (* (+ 1 .index) .so_far))=factorial'

To produce:

"number", "factorial"
1, 1
5, 120
7, 5040
-6,