Natural

com.phasmidsoftware.number.top.Natural
See theNatural companion object
sealed trait Natural

A sealed trait representing natural numbers (non-negative integers). Natural numbers are either Zero or a Successor of another natural number. This trait provides methods for basic arithmetic operations including addition, subtraction, and multiplication.

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
class Successor
object Zero

Members list

Value members

Abstract methods

infix def add(n: Natural): Natural

Adds the specified natural number to this natural number and returns the result.

Adds the specified natural number to this natural number and returns the result.

Value parameters

n

the natural number to add

Attributes

Returns

the result of adding the specified natural number to this one

def next: Natural

Computes the next natural number by returning the successor of the current natural number.

Computes the next natural number by returning the successor of the current natural number.

Attributes

Returns

the Successor of this natural number.

Concrete methods

infix def multiply(n: Natural): Natural

Multiplies the current natural number by the given natural number.

Multiplies the current natural number by the given natural number.

This method performs multiplication using a tail-recursive helper function. It repeatedly adds the current number to an accumulator based on the value of the given n.

Value parameters

n

the natural number to multiply with the current number

Attributes

Returns

the result of the multiplication as a natural number

infix def subtract(n: Natural): Option[Natural]

Subtracts the given natural number n from this natural number. The subtraction operation is defined for natural numbers (non-negative integers). If the result would be negative, the method returns None.

Subtracts the given natural number n from this natural number. The subtraction operation is defined for natural numbers (non-negative integers). If the result would be negative, the method returns None.

Value parameters

n

the natural number to subtract from this natural number

Attributes

Returns

an Option[Natural] containing the result of the subtraction if non-negative, otherwise None