using functions

There are many functions in Macaulay2 that do various things. You can get a brief indication of what a function does by typing a ? before its name.
 ```i1 : ?sin * Usage: sin x * Inputs: * x, a real number * Outputs: * a real number, the sine of x Ways to use sin =============== * sin(CC), see "sin" -- compute the sine * sin(QQ), see "sin" -- compute the sine * sin(RR), see "sin" -- compute the sine * sin(ZZ), see "sin" -- compute the sine```
In this case, we see that the function sin takes a single argument x. We apply a function to its argument by typing them in adjacent positions. It is possible but not necessary to place parentheses around the argument.
 ```i2 : sin 1.2 o2 = .932039085967226 o2 : RR (of precision 53)``` ```i3 : sin(1.2) o3 = .932039085967226 o3 : RR (of precision 53)``` ```i4 : sin(1.0+0.2) o4 = .932039085967226 o4 : RR (of precision 53)```
In parsing the operator ^ takes precedence over adjacency, so the function is applied after the power is computed in the following code. This may not be what you expect.
 ```i5 : print(10 + 1)^2 121```
Some functions take more than one argument, and the arguments are separated by a comma, and then parentheses are needed.
 ```i6 : append o6 = append o6 : CompiledFunction``` ```i7 : append({a,b,c},d) o7 = {a, b, c, d} o7 : List```
Some functions take a variable number of arguments.
 ```i8 : join o8 = join o8 : CompiledFunction``` ```i9 : join({a,b},{c,d},{e,f},{g,h,i}) o9 = {a, b, c, d, e, f, g, h, i} o9 : List```
Functions, like anything else, can be assigned to variables. You may do this to provide handy private abbreviations.
 `i10 : ap = append;` ```i11 : ap({a,b,c},d) o11 = {a, b, c, d} o11 : List```