# Namespace: joker.template

v1.0

## Contents

- Summary
- Index
- Constants
- Variables
- Functions, Macros, and Special Forms

## Summary

Macros that expand to repeated copies of a template expression.

## Index

- apply-template
- do-template

## Constants

Constants are variables with `:const true` in their metadata. Joker currently does not recognize them as special; as such, it allows redefining them or their values.

(None.)

## Variables

(None.)

## Functions, Macros, and Special Forms

- ### apply-template

  Function v1.0

      (apply-template argv expr values)

  For use in macros. argv is an argument list, as in defn. expr is
  a quoted expression using the symbols in argv. values is a sequence
  of values to be used for the arguments.
  apply-template will recursively replace argument symbols in expr
  with their corresponding values, returning a modified expr.
  Example: (apply-template '[x] '(+ x x) '[2])
  ;=> (+ 2 2)

  source

- ### do-template

  Macro v1.0

      (do-template argv expr & values)

  Repeatedly copies expr (in a do block) for each group of arguments
  in values. values are automatically partitioned by the number of
  arguments in argv, an argument vector as in defn.
  Example: (macroexpand '(do-template [x y] (+ y x) 2 4 3 5))
  ;=> (do (+ 4 2) (+ 5 3))

  source