- publishing free software manuals
The Org Mode 7 Reference Manual
by Carsten Dominik and others
Paperback (6"x9"), 282 pages
ISBN 9781906966089
RRP £9.95 ($14.95)

Sales of this book support the Org project! Get a printed copy>>>

15.3 Emacs Lisp forms as formulas

It is also possible to write a formula in Emacs Lisp; this can be useful for string manipulation and control structures, if 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. Here are 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 Calc's $1+$2
  '(+ $1 $2);N
Compute the sum of columns 1-4, like Calc's vsum($1..$4)
  '(apply '+ '($1..$4));N
ISBN 9781906966089The Org Mode 7 Reference ManualSee the print edition