Data Structures
Containers

Besides lists and tables, Mint supports a few more data structures.
Sets are lists that can only hold one of each element. You cannot put the number 3 in the same set twice.
import "data.mint"
numberSet = set()
numberSet.add(2.5)
numberSet.add(2)
numberSet.add(15)
numberSet.add(15)
numberSet.add(15)
numberSet.add(-32)
print numberSet.toString()
The code above will print: {2.5, 2, 15, -32}

Sorted lists are lists that always have an ordering, from smallest to greatest.
import "data.mint"
srted = sortedList()
srted.append(10)
srted.append(5)
srted.append(2.5)
srted.append(0)
srted.append(1)
srted.append(1.75)
print srted.toString()
Trees are data structures that have a root and more child trees. To make the tree:
  50
 /  \
2    25
Use:
import "data.mint"
fiftyTree = tree(50)
a = tree(2)
b = tree(25)
fiftyTree.addChild(a)
fiftyTree.addChild(b)
Finally, there are subprograms that can sort lists, such as bubble sort and quick sort.
import "data.mint"
print quickSort([9, 8, 7, 100, 200, -9])
Let us talk a bit more about strings and lists.

Because strings and lists are both native data structures,
you don't need to import anything to use them.

One interesting thing about lists...
If a subprogram takes in exactly one list as an argument,
you can omit the parentheses that call the subprogram:
import "data.mint"
quickSort[900, -4, 0, 1, 20, 28, 9, -450, 1000, 200, 256, 1024]
To remove items from a list, use subtraction.
femaleNames = ["Alice", "Jenny", "Jane", "Ethel", "Angel"]
femaleNames = femaleNames - ["Jane", "Alice"]
print femaleNames    // Prints ["Jenny", "Ethel", "Angel"]
To reverse a string, just make it a negative string by putting a negative sign in front of it.
lauraStuart = "My name is Laura Stuart, the fictional Archbishop of some English church."
trautSarual = -lauraStuart
print trautSarual
The above code will print the reversed string ".hcruhc hsilgnE emos fo pohsibhcrA lanoitcif eht ,trautS aruaL si eman yM".
laura = "My name is Laura Stuart!"
index = "My name is Index, Touma-kun!"
print laura and index
print index and laura
print laura xor index
print index xor laura
For strings, the keywords and and xor will both return a
list of two Photon Mint values.

The and operator for strings will take the two strings, and find all the characters
that match and all the characters that do not.
The characters that match go into the first element of the list, and the characters
that don't match go into the second element of the list.

The xor operator for strings will take two strings, and find all the characters
that exactly match at the same position, which go into the first element of
the returned list, and all the characters that don't match at the same position,
which go into the second element.

The or operator on strings can be used to alphabetize strings.

The expression ALPHA or BETA will return ALPHA if ALPHA contains a string
that is alphabetically before BETA, and will return BETA otherwise.
/* If we alphabetize these words,
 * you get "what", "whence", "where", and "whoa"
 * The following statement prints "what", which is
 * the first word that comes alphabetically in this list
 * of 4 words.
 */
print "whence" or "where" or "what" or "whoa"
Strings can be compared by length using the < and > operators.
Quick-Sort is written in Photon Mint, and it uses the <
and > operators, so it also works on lists of strings.
if thisString > thatString
    // This will only be executed if and only
    // if thisString has a greater length
    // than thatString.
end
import "data.mint"
// The following line will sort strings by length,
// and therefore it will display:
// ["tiny", "mouse", "tigress", "elephant"]
// onto the computer screen.
print quickSort["elephant", "tiny", "mouse", "tigress"]
Navigation
Previous Lesson: Tables
Next Lesson: Subprograms
Table of Contents