Array are useful for dealing with a sequence of related data values, especially if they have a particular order. There are occasions, however, where you don't really care about the order, and instead would simply use the Array as a storage place for values - using contains and is in to check which values are inside.

Think of datasets as being like arrays, but with specific restrictions:

These restrictions can be helpful in that they can stop programming mistakes from occurring - you might accidentally try to modify a position in an array, but type the name of a different array that should not be modified as such. Using a dataset for the second array, if that is what best suits it, will cause an error to occur instead of allowing this unintended operation to continue.

Operator Meaning Example
is Evaluates to boolean true if both sides contain equal items, otherwise false. (ds:1,2) is (ds 2,1) (is true)
is not Evaluates to true if both sides differ in items. (ds:5,4) is not (ds:5) (is true)
contains Evaluates to true if the left side contains the right side. (ds:“Ape”) contains “Ape”, (ds:(ds:99)) contains (ds:99), (ds: 1,2,3) contains all of (a:2,3), (ds: 1,2,3) contains any of (a:3,4)
is in Evaluates to true if the right side contains the left side. “Ape” is in (ds:“Ape”), (a:3,4) is in (ds:1,2,3)
+ Joins datasets. (ds:1,2,3) + (ds:1,2,4) (is (ds:1,2,3,4))
- Subtracts datasets. (ds:1,2,3) - (ds:1,3) (is (ds:2))
When used in a macro call, it separates each value in the right side., The dataset's values are sorted before they are spread out. (a: 0, …(ds:1,2,3,4), 5) (is (a:0,1,2,3,4,5))