MAXScript Language Reference > Names, Literal Constants, and Expressions > Simple Expressions > Math Expressions >

# polymorphism

As in mathematical expressions, MAXScript operators are polymorphic. This term means a single operator can be used to operate on a number of different types of values and performs the appropriate action for each type of value.

For example, a "+" operator between two integers performs integer arithmetic, between two floats it performs real arithmetic, and between two matrices it performs a matrix addition.

MAXScript allows certain non-mathematical types to use certain math operators.You can concatenate two strings with the "+" operator,

FOR EXAMPLE
    "twas brillig" + " and the slithy tobes"
    x.name += sequence_number as string

In some cases, you can mix operand types and MAXScript converts them appropriately. For example, adding a float to an integer results in a float. Multiplying a 3D point by a float results in a scalar vector product, and so on.

Internally in MAXScript the allowable operators and the actions performed by the operators are defined for each type of value. The allowable operators and their actions are documented with the value type descriptions.

#### See Also

- Inheritance and Polymorphism