diff --git a/docs/api/srfi/111.md b/docs/api/srfi/111.md new file mode 100644 index 00000000..512e7f6b --- /dev/null +++ b/docs/api/srfi/111.md @@ -0,0 +1,21 @@ +# SRFI 111 - Boxes + +The `(srfi 111)` library ... + +See the [SRFI document](http://srfi.schemers.org/srfi-111/srfi-111.html) for more information. + +##- [`and-let*`](#and-let) +## +###and-let* +## (and-let* (claws) body +## +## claws ::= '() | (cons claw claws) +## claw ::= (variable expression) | (expression) | +## bound-variable +## +##- The `claws` are evaluated in the strict left-to-right order +##- For each `claw`, the `expression` part is evaluated first (or `bound-variable` is looked up) +##- If the result is #f, `and-let*` immediately returns #f +##- Otherwise, if the `claw` is of the form `(variable expression)` the `expression`'s value is bound to a freshly made `variable` +##- The `variable` is available for the rest of the `claws` , and the `body` +##- As usual, all `variable`s must be unique (like in `let*`)