In Scheme and Racket, a strategy template ... is waiting for it ... a functional application.
The Wikipedia strategy page gives this example of its use:
class StrategyExample {
public static void main(String[] args) {
Context context;
context = new Context(new ConcreteStrategyAdd());
int resultA = context.executeStrategy(3,4);
context = new Context(new ConcreteStrategySubtract());
int resultB = context.executeStrategy(3,4);
context = new Context(new ConcreteStrategyMultiply());
int resultC = context.executeStrategy(3,4);
}
}
In Scheme or Racket, you simply write this as:
(+ 3 4)
(- 3 4)
(* 3 4)
And if you want to pass the strategy applied to the set of arguments, it might look like this:
(define (apply-strategy strategy context)
(strategy context))
, Java.