XLISP dotimes

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

# dotimes

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

## Syntax

(dotimes (symbol end-expr [result]) [expr ... ])
  symbol - a symbol
  end-expr - an integer expression
  result - an optional expression for the returned result
  expr - expressions comprising the body of the loop which may contain returns, gos or tags for go
  returns - the return value of the result expression or NIL

## Description

The 'dotimes' special form is basically a 'for' looping construct that contains a loop 'symbol', an 'end-expr' to specify the final value for 'symbol', an optional 'return' value and a block of code [expressions] to evaluate. The sequence of execution is:

      symbol := 0
      while  symbol value is not equal to end-expr value
        loop code execution
        symbol := symbol + 1
      end-while
      return result

The main loop 'symbol' will take on successive values from zero to ('end-expr' - 1). The 'dotimes' form will go through and create and initialize the 'symbol' to zero. After execution of the loop 'exprs', the 'symbol' value is incremented. This continues until the 'symbol' value is equal to 'end-expr'. The value of the 'result' expression is evaluated and returned. If no 'result' is specified, NIL is returned. When the 'dotimes' is finished execution, the 'symbol' that was defined will no longer exist or retain its value. If the 'end-expr' is zero or less, then there will be no execution of the loop body's code.

## Examples

    (dotimes (i 4 "done") (princ i))  ; prints 0123 returns "done"
    (dotimes (i 4) (princ i))         ; prints 0123 returns NIL
    (dotimes (i 1) (princ i))         ; prints 0    returns NIL
    (dotimes (i 0) (princ i))         ; returns NIL
    (dotimes (i -9) (princ i))        ; returns NIL

See the dotimes special form in the XLISP 2.0 manual.

Back to Top

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