JSL Syntax Reference > JSL Functions > Assignment Functions
Publication date: 11/29/2021

# Assignment Functions

JSL also provides operators for in-place arithmetic, or assignment operators. These operations are all done in place, meaning that the result of the operation is assigned to the first argument. The most basic assignment operator is the = operator (or the equivalent function Assign). For example, if a is 3 and you do a+=4, then a becomes 7.

The first argument to an assignment function must be something capable of being assigned (an L-value). You cannot do something like 3+=4, because 3 is just a value and cannot be reassigned. However, you can do something like a+=4, because a is a variable whose value you can set.

a+=b

Description

Adds a and b and places the sum into a.

Returns

The sum.

Arguments

a

Must be a variable.

b

Can be a variable, a list, a number, or a matrix.

Notes

The first argument must be a variable, because its value must be able to accept a value change. A number as the first argument produces an error.

For Add To(): Only two arguments are permitted. If one or no argument is specified, Add To() returns a missing value. Any arguments after the first two are ignored.

For a+=b: More than two arguments can be strung together. JMP evaluates pairs from right to left, and each sum is placed in the left-hand variable. All arguments except the last must be a variable.

Example

a+=b+=c

JMP adds b and c and places the sum into b. Then JMP adds a and b and places the sum into a.

List Operators and Functions in the Scripting Guide

Assign(a, b)

a=b

Description

Places the value of b into a.

Returns

The new value of a.

Arguments

a

Must be a variable.

b

Can be a variable, number, or matrix.

Notes

a must be a variable, because it must be able to accept a value change. A number as the first argument produces an error. If b is some sort of expression, itâ€™s evaluated first and the result is placed into a.

List Operators and Functions in the Scripting Guide

Divide To(a, b)

a/=b

Description

Divides a by b and places the result into a.

Returns

The quotient.

Arguments

a

Must be a variable.

b

Can be a variable, number, or matrix.

List Operators and Functions in the Scripting Guide

Multiply To(a, b)

a*=b

Description

Multiplies a and b and places the product into a.

Returns

The product.

Arguments

a

Must be a variable.

b

Can be a variable, number, or matrix.

Notes

The first argument must be a variable, because its value must be able to accept a value change. A number as the first argument produces an error.

For Multiply To(): Only two arguments are permitted. If one or no argument is specified, Multiply To() returns a missing value. Any arguments after the first two are ignored.

For a*=b: More than two arguments can be strung together. JMP evaluates pairs from right to left, and each product is placed in the left-hand variable. All arguments except the last must be a variable.

Example

`a*=b*=c`

JMP multiplies b and c and places the product into b. Then JMP multiplies a and b and places the product into a.

List Operators and Functions in the Scripting Guide

PostDecrement(a)

a--

Description

Post-decrement. Subtracts 1 from a and places the difference into a.

Returns

a-1

Argument

a

Must be a variable.

Notes

If a-- or Post Decrement(a) is inside another expression, the expression is evaluated first, and then the decrement operation is performed. This expression is mostly used for loop control.

List Operators and Functions in the Scripting Guide

Post Increment(a)

a++

Description

Post-increment. Adds 1 to a and places the sum into a.

Returns

a+1

Argument

a

Must be a variable.

Notes

If a++ or Post Increment(a) is inside another expression, the expression is evaluated first, and then the increment operation is performed. Mostly used for loop control.

List Operators and Functions in the Scripting Guide

Subtract To(a, b)

a-=b

Description

Subtracts b from a and places the difference into a.

Returns

The difference.

Arguments

a

Must be a variable.

b

Can be a variable, number, or matrix.

Notes

The first argument must be a variable, because its value must be able to accept a value change. A number as the first argument produces an error.

For SubtractTo(): Only two arguments are permitted. If fewer than two or more than two arguments is specified, SubtractTo() returns a missing value.

For a-=b: More than two arguments can be strung together. JMP evaluates pairs from right to left, and each difference is placed in the left-hand variable. All arguments except the last must be a variable.

Example

`a-=b-=c`

JMP subtracts c from b and places the difference into b. Then JMP subtracts b from a and places the difference into a.