As per request, here's a little tutorial on lists.
Lists, much like Strings, are methods of storing a variable amount of some form of data into one variable. And for ease of explanation, know that when I say variable, I mean something that can change, and in our case as programmers, will hold a value of some sort, be it numerical or characters (as in strings). Also know that this is not the only definition of variable I/we (the programming community) will use, as it's root meaning is able to vary. This second definition would be used to describe (in most cases) the length of a string, list, etc., as being variable, or (yes, again) able to vary.
A string can be said to be one or many characters in a sequence, surrounded by quotes. Anything beyond that is variable, as the length of the string, the pattern of them, and which ones make the pattern are all able to vary to the user's liking, as I'm sure you already know. A list is much the same, except with numerical values. Where as you could have a string that is "ABC", you can also have a list that is {1,2,3}. Notice how strings are surrounded by quotation marks, whereas lists are surrounded by opening and closing brackets. Also note that each "element" (or each value in the list) is separated by a comma. This way you know where the list begins, ends, and you can tell what each value is.
Another major difference between lists and Strings is that with lists, you can store a value directly into a certain element of a list, overlapping the previous value. With strings, if you want to over-write a particular element of the string, you have to recreate the part of the string before that element, write in the new element, and then recreate everything after that element, which is annoying, takes valuable time, and can often run you errors if certain conditions are met. Also, lists support many more commands than Strings, which will help you use them, like being able to find the sum of all the elements of the list, with just one command, or the product of them all, again with just one command.
You can recall a value from a list by naming the list, then putting parenthesis around the element of the list, like so:
Code: :L1(1)
You store a value into a list by nearly the same method, like so:
Code: :#→L1(1)
Another major difference between Strings and lists is that whereas there are only ten usable Strings that can be used by the user (Str0-Str9), you can make your own lists, with their own name on the calculator, on top of the 6 already made for you (L1-L6).
Here are some ways to make your own list: (Note: a custom made list can have a name from 1 to 5 characters long, using only the "A-Z" characters, and requires a small "L" before it's name for the calculator to recognize you mean a list. I signify the small "L" with a *L*. It can be found under [2nd],[LIST],[→],[B])
Code: :SetUpEditor LISTA,LISTB,LISTC
-SetUpEditor does as it's name implies, it will set up lists among other things to be edited. This is a useful command, as it creates a list if it has not been made (btw, yes, you have to create a list, just like a string, if it has not been made already, especially so with custom lists), it will unarchive a list if it is archived, and it can create several lists at once, as you can see. However, this will not set dimensions nor values to the lists, as you have to set those yourself, as you will see below-
:#→dim(*L*LISTA
:Fill(0,*L*LISTA
:*L*LISTA→*L*LISTB
:*L*LISTB→*L*LISTC
-what this is doing here is setting the dimensions to a list, then filling it entirely with 0's. After that, it's storing the original into the next two, basically making copies of itself into the other two. If you want each of the lists to be different, then you'll need to set the dimensions of each one accordingly, and possibly their Fill( values as well-
:{1,2,3,4,5,6}→*L*LISTA
-this is (obviously) hard-coding in the list. This is usually not recommended as there are usually better methods to do than this, but often it is the best method. You can (as I'm sure you could imagine) hard-code in each list to be tailored for your own needs-
:seq(A,A,1,6→*L*LISTA
-this is the last method I'll go over. Using specialized commands that will output lists. This is basically the same as hard-coding in the, but using a command that will output a list, and storing that outputted list directly into *L*LISTA. seq( will make a sequence based on what is given to it. The first parameter is the sequence it will follow, much like a graph, except now with any variable you want. The second parameter is which variable you want to use. So here I'm making it count up A, using the variable A. The third parameter is the lower bound, which is where it will start counting. Here, it will start from 1, upwards. The fourth parameter is the upper bound, which is where it will stop counting, when it is equal to or greater than this value. For this line of code, it will go up as A, using variable A, from 1 to 6, essentially creating the same list as I just showed with the hard-coding example. A hidden fifth parameter is the increment, which you can use to count up by twos, count up by 3, or even down by -1. You will run into an error if the third parameter will never reach the fourth (i.e. the lower bound is above the upper bound and the increment is positive) so try to avoid that-
You can also compare a single value against a whole list. What this means is that if I want to know what values in L1 are equal to or greater than 0, then I can do this:
Code: :L1>=0
HOWEVER, this will return as a list of it's own. It will return as a list of either zeros or ones, for false or true, respectively. If element one of L1 is true for the statement, it will return one, but if element two is false, then it will return zero. This is then made into a new list of it's own. If I wanted to know if there were 3 zeros in L1, then I could do this code:
Code: :If 3=sum(0=L1)
What that means is that it is checking to see if 3 equals the sum of the list that is returned when I check if zero equals L1. You could use a similar code to find out how many letters in your given hang-man word equal a guessed letter. On top of that, you could also find out which ones of those letters equal the guessed letter.
You can also do a similar thing with comparing one list to another. By comparing one list to another, it will check each element for true/false. However, both lists need to have the same exact dimensions to be compared, because otherwise it doesn't know what to do with the left-over numbers that can't be compared to another number.
If you have any more questions, don't hesitate to ask, or check out this article on lists, and their commands. It doesn't go into much detail about their commands, but it will link you to very detailed articles about each command.