chickadee » procedure-decoration » make-procedure-decorator

(make-procedure-decorator PREDICATE DECORATOR RETRIEVER [#:initializer INITIALIZER] [#:replace? REPLACE?]) -> procedure-decoratorprocedure

Returns a new procedure-decorator.

The RETRIEVER is a procedure of at least one argument, the current procedure decoration, returning the procedure decoration object. Any following arguments are from the procedure-decoration call that will invoke the RETRIEVER.

The INITIALIZER is a procedure of varying arity, returning the procedure decoration initial object. The arguments are from the decorate-procedure call that invokes the INITIALIZER. The INITIALIZER is invoked only once per procedure to decorate.

The default INITIALIZER is built from the DECORATOR. The DECORATOR will be called with a first argument of (void), and any other arguments from the decorate-procedure call.

The REPLACE? flag determines whether the procedure object of a decorated procedure will be replaced (become). The default is #f.