It is also possible to write a formula in Emacs Lisp; this can be useful
for string manipulation and control structures, if the Calc's
functionality is not enough. If a formula starts with a single quote
followed by an opening parenthesis, then it is evaluated as a lisp form.
The evaluation should return either a string or a number. Just as with
calc formulas, you can specify modes and a printf format after a
semicolon. With Emacs Lisp forms, you need to be conscious about the way
field references are interpolated into the form. By default, a
reference will be interpolated as a Lisp string (in double quotes)
containing the field. If you provide the ‘N’ mode switch, all
referenced elements will be numbers (non-number fields will be zero) and
interpolated as Lisp numbers, without quotes. If you provide the
‘L’ flag, all fields will be interpolated literally, without quotes.
I.e., if you want a reference to be interpreted as a string by the Lisp
form, enclose the reference operator itself in double quotes, like
"$3". Ranges are inserted as space-separated fields, so you can
embed them in list or vector syntax. A few examples, note how the
‘N’ mode is used when we do computations in lisp.
Swap the first two characters of the content of column 1 '(concat (substring $1 1 2) (substring $1 0 1) (substring $1 2)) Add columns 1 and 2, equivalent to the Calc's$1+$2'(+ $1 $2);N Compute the sum of columns 1-4, like Calc'svsum($1..$4)'(apply '+ '($1..$4));N