Functions are a vital element of the scripting language, so let's discuss them. You call a function when you need it, and every function returns a result. To call a function, you type the function name followed by two matching parentheses -- the matching parentheses are what tells JMP that a name is a function. For example, Names Default to Here followed by matching parentheses that contain a Boolean one is a call to the Names Default to Here function. So, most functions take arguments inside those parentheses. For example, if you need the cube root of you call the Root function with the arguments and But some functions don't take any arguments at all. For example, if you need the value of the mathematical constant pi, you call the function Pi without any argument. Some functions take a variable number of arguments. For example, you call the List function when you want to make a list with any number of items. So you could call or you could call List("apple", "orange", "pear", "banana"). With many functions, some arguments are required and others are optional. There are even some functions where all of the arguments are optional. The optional arguments usually have a default value or setting. For example, if you call the Root function with only the first argument, the second argument is assumed to be But if you call the Open function without any arguments, it launches the Open File dialog. Many functions have equivalent operators that you can use to call them. For example, instead of calling the List function to create a list, you can enclose your list items inside curly brackets. The result is the same. Many mathematical functions can be expressed with infix operators -- operators placed in between the operands. For example, the Add function with two arguments, a and b, can also be expressed as a plus b. Finally, some functions produce a side effect that might be as important as the result that they return. For example, the result returned by the For function is a missing value, but you call the For function to perform some part of your script repeatedly.