This=That 2.0

Language Overview
This=That 2.0 is an extension of This=That that adds some other special values including arrays of numbers that a variable takes. For example:


 * 1) x=1->4

sets #x to the numbers 1, 2, 3, and 4. While:


 * 1) x=1->

sets #x to all positive integers. Also:

#x=1,5,-84

sets #x to the numbers 1, 5, and -84. These can be used in loops like this:

if loop a=#x3 #x:3=0 if loop a=end
 * 1) x=1->4

This sets the array of numbers (x) to 1, 2, 3, 4. Because at least one value of x suffices to the condition, the if loop runs. sets all values equal to 3 in #x to 0, so the new value of #x is 1, 2, 0, 4. The # symbol must precede all array names. The delete value can be used to remove values from an array. In the following:

if loop a=#x3 #x:3=delete if loop a=end
 * 1) x=1->4

Instead of 3 being changed to 0, it is deleted, leaving #x set to 1, 2, 4.

Comments can be used and are enclosed in square brackets [].

Infinite prime number generator
b=2 [sets b to 2] while loop x=b>1 [starts a while loop called x that runs as long as b is greater than 1 (this                   runs infinitely because b will never decrease its value below 2)] #a:#c=delete [deletes all values in array a that are also in array c] b=b plus 1 [increases b by 1] #a: [sets array a to all integers greater than or equal to 2.]
 * 1) c=#a times b [sets array c to the value of array a times the value of b]