Documentation for routine succ assembled from the following pages:

Class: Date §

From Date

(Date) method succ §

Defined as:

method succ(Date:D: --> Date:D)

Returns a Date of the following day. "succ" is short for "successor".

say Date.new("2016-02-28").succ;   # OUTPUT: «2016-02-29␤»

Class: Numeric §

From Numeric

(Numeric) method succ §

method succ(Numeric:D:)

Returns the number incremented by one (successor).

Enum: Bool §

From Bool

(Bool) routine succ §

method succ(--> Bool:D)

Returns True.

say True.succ;                                    # OUTPUT: «True␤» 
say False.succ;                                   # OUTPUT: «True␤»

succ is short for "successor"; it returns the next enum value. Bool is a special enum with only two values, False and True. When sorted, False comes first, so True is its successor. And since True is the "highest" Bool enum value, its own successor is also True.

Class: Allomorph §

From Allomorph

(Allomorph) method succ §

method succ(Allomorph:D:)

Calls Numeric.succ on the invocant's numeric value.

Class: IO::Path §

From IO::Path

(IO::Path) method succ §

Defined as:

method succ(IO::Path:D: --> IO::Path:D)

Returns a new IO::Path constructed from the invocant, with .basename changed by calling Str.succ on it.

"foo/file02.txt".IO.succ.say# OUTPUT: «"foo/file03.txt".IO␤»

Class: Str §

From Str

(Str) method succ §

method succ(Str:D: --> Str:D)

Returns the string incremented by one.

String increment is "magical". It searches for the last alphanumeric sequence that is not preceded by a dot, and increments it.

'12.34'.succ;      # OUTPUT: «13.34» 
'img001.png'.succ# OUTPUT: «img002.png»

The actual increment step works by mapping the last alphanumeric character to a character range it belongs to, and choosing the next character in that range, carrying to the previous letter on overflow.

'aa'.succ;   # OUTPUT: «ab» 
'az'.succ;   # OUTPUT: «ba» 
'109'.succ;  # OUTPUT: «110» 
'α'.succ;    # OUTPUT: «β» 
'a9'.succ;   # OUTPUT: «b0»

String increment is Unicode-aware, and generally works for scripts where a character can be uniquely classified as belonging to one range of characters.

Role: Enumeration §

From Enumeration

(Enumeration) method succ §

Defined as:

method succ(::?CLASS:D:)
say Oðin.succ;  # OUTPUT: «Freija␤»