# Reverse[optional A: (Real[A] val & (I8 val | I16 val | I32 val | I64 val | I128 val | ILong val | ISize val | U8 val | U16 val | U32 val | U64 val | U128 val | ULong val | USize val | F32 val | F64 val))]¶

[Source]

Produces a decreasing range [max, min] with step `dec`, for any `Number` type. (i.e. the reverse of `Range`)

Example program:

``````use "collections"
actor Main
new create(env: Env) =>
for e in Reverse(10, 2, 2) do
env.out.print(e.string())
end
``````

Which outputs:

``````10
8
6
4
2
``````

If `dec` is 0, produces an infinite series of `max`.

If `dec` is negative, produces a range with `max` as the only value.

``````class ref Reverse[optional A: (Real[A] val & (I8 val | I16 val | I32 val |
I64 val | I128 val | ILong val |
ISize val | U8 val | U16 val |
U32 val | U64 val | U128 val |
ULong val | USize val | F32 val |
F64 val))] is
Iterator[A] ref
``````

## Constructors¶

### create¶

[Source]

``````new ref create(
max: A,
min: A,
dec: A = 1)
: Reverse[A] ref^
``````

• max: A
• min: A
• dec: A = 1

## Public Functions¶

### has_next¶

[Source]

``````fun box has_next()
: Bool val
``````

### next¶

[Source]

``````fun ref next()
: A
``````

• A

### rewind¶

[Source]

``````fun ref rewind()
: None val
``````