Formula language explained

The Formula language is a scripting language used by Lotus Notes. It is often referred to as @Formula language (pronounced at-formula) because many language elements start with the @-character. Here is an example of a selection formula:

SELECT @NoteId = "NT0050D26"

Development

It was created by Ray Ozzie during the early development of Lotus Notes. He borrowed the compiler and decompiler from the Lotus 1-2-3 spreadsheet, but unlike the spreadsheet language Formula Language was designed primarily for string and list processing, not numerical processing. It was originally a Functional programming language with unique text list-handling features inspired by Ray Ozzie's prior use of Icon and Lisp.

The Formula language engine was rewritten by Damien Katz for Notes and Domino 6.[1] New features were added to the language, such as looping and dynamic execution, and performance was improved.[2]

Structure

The Formula language has two parts:

@Functions can be used in several places throughout Lotus Notes. The most important uses are:

@Commands are like menu commands: they perform actions in the Lotus Notes client. Examples of actions are:

@Commands are primarily used in formulas that are triggered by user action, such as in button formulas. It is possible to combine them with @Functions, for example by making execution of an @command conditional on a field value.

Notes and References

  1. Web site: Formula Engine Rewrite . Damien Katz . Personal blog . January 4, 2005 . September 30, 2016 .
  2. Web site: Enhancements to the formula language in Domino 6 . November 4, 2002 . dead . https://web.archive.org/web/20121022162650/https://www.ibm.com/developerworks/lotus/library/ls-formula_enhancements/ . October 22, 2012 . IBM . September 30, 2016 .