/Pony

# 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
```