Formula language


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

SELECT @NoteId = "NT0050D26"

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. New features were added to the language, such as looping and dynamic execution, and performance was improved.
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.