Strategy Definition

Stratego -- Strategies for Program Transformation
A strategy definition
f(x1,...,xn) = s
defines a strategy operator f with n strategy parameters. An application f(s1, of this operator is equivalent to
let x1 = s1 ... xn = sn in s
that is, binding the actual strategy parameters si to the formal parameters xi. Strategy definitions may be recursive.

The RecursionOperator rec can be used to create recursive strategy locally without need to give a name.

rec x(s)
is equivalent to
let x = s in x end

Typical examples of strategy definitions are

try(s) = s <+ id
repeat(s) = try(s; repeat(s))
topdown(s) = s; all(topdown(s))