**Name:**

roll - Roll a portion n stack levels k times

**Synopsis:**

objn ... obj1 n k roll

**Examples:**

(a) (b) (c) 3 1 roll -> (c) (a) (b)

(a) (b) (c) 3 -1 roll -> (b) (c) (a)

(a) (b) (c) 3 0 roll -> (a) (b) (c)

**Description:**

roll performs a circular shift of the first n stack levels

by k positions. Before this is done, roll removes its arguments

from the stack.

If k is positive, each shift consists of moving the contents of level

0 to level n-1, thereby moving elements at levels 1 through n-1 up one

stack level.

If k is negative, each shift consists of moving the contents of level

n-1 to level 0, thereby moving elements at levels 1 through n-1 down

one stack level.

**Diagnostics:**

Raises StackUnderflow error if there are less than n+2 objects

on the stack.

**SeeAlso:**

**Source:**

/home/nest/work/nest-2.14.0/sli/slistack.cc