XLISP block

Nyquist / XLISP 2.0 - Contents | Tutorials | Examples | Reference

# block

Type: | - | special form (fsubr)
Source: | - | xlcont.c

## Syntax

(block name [body ... ])
  name - an unevaluated symbol for the block name
  body - an arbitrary number of Lisp expressions
  returns - the value of the last expression

## Description

The 'block' special form specifies a 'named block' construct. The last expression in 'body' will be returned by the 'block' construct as its result unless a return or return-from is executed within 'block'. The return exit will exit the nearest [inner-most] 'block'. The return-from exit will exit the specified 'block'.

## Examples

    (defun test ()
      (block outer         ; outer BLOCK
        (print "outer")
        (block inner       ; inner BLOCK
          (print "inner")
          (return-from outer "all done")
          (print "won't get here"))))

    > (test)
    "outer"     ; screen output of PRINT
    "inner"     ; screen output of PRINT
    "all done"  ; return value

See defun, print, return-from.

See also:

- Contents → Control Constructs

Back to Top

Nyquist / XLISP 2.0 - Contents | Tutorials | Examples | Reference