mirror of
https://github.com/erg-lang/erg.git
synced 2025-08-14 23:51:06 +00:00
1.3 KiB
1.3 KiB
operator
infix operator
_+_
|R, O, A <: Add(R, O)|(x: A, y: R) -> O
Perform addition.
_-_
|R, O, S <: Sub(R, O)|(x: S, y: R) -> O
Perform subtraction.
*
|R, O, M <: Mul R, O|(x: M, y: R) -> O
Perform multiplication.
/
|R, O, D <: Div(R, O)|(x: D, y: R) -> O
Perform division.
infix alphabet operator
and
(x: Bool, y: Bool) -> Bool
Executes the and operation.
or
(x: Bool, y: Bool) -> Bool
Executes the and operation.
prefix operator
+_
|T <: Num|(x: T) -> T
Same as id by default.
-_
|T <: Num|(x: T) -> T.Neg
For example, Nat.-
: Nat -> Neg and the return value is different.
!
|T <: Immut|(x: T) -> T!
Create a mutable object from an immutable object. This operator itself is not procedural and can be used inside a function.
..
|T <: Ord|(x: T) -> Range T
Creates a Range object with no lower bound at the end of x. x..x returns only x as an iterator.
..<
|T <: Ord|(x: T) -> Range T
x..<x results in an empty Range object, yielding nothing as an iterator.
postfix operator
A postfix operator is called when parsing a parsing infix operator fails.
That is, even if x..
returns a function, x..y
is (..)(x, y)
and not (x..)(y)
.
|T <: Ord|(x: T)..
-> Range T
Creates a Range object with no upper bound starting at x.