Previous: , Up: syntaxes   [Index]


1.7.6 Miscellaneous syntaxes

The following bindings are exported by the library (vicare language-extensions syntaxes).

Macro: callet ?func ?arg ...

Expand to a call to ?func, which must evaluate to a function, applied to the arguments resulting from processing the arg syntaxes; arg can be one among:

?expr
(?name ?expr)

where ?expr is an expression that will become the actual argument and ?name must be an identifier used to comment the meaning of the arguments. Examples:

(callet printf
        (string "ciao ~a")
        (arg    123))
→ (printf "ciao ~a" 123)
Macro: callet* ?func ?arg ...

Like callet, but define local let* bindings for the arg with name. Example:

(callet printf
        (string "ciao ~a")
        (arg    123))
→ (let* ((string "ciao ~a")
           (arg    123))
      (printf string arg))