--- loncom/html/adm/help/tex/Problem_LON-CAPA_Functions.tex 2011/05/21 14:50:44 1.21
+++ loncom/html/adm/help/tex/Problem_LON-CAPA_Functions.tex 2013/08/27 21:15:59 1.26
@@ -65,8 +65,8 @@ Option 4 - @all = \&languages($\backslas
\&roundto(\$x,\$n) & Rounds a real number to n decimal points. \$x and \$n can be pure numbers \\
\hline
-\&cas(\$s,\$e,\$l)&Evaluates the expression \$e inside the symbolic algebra system \$s. Currently, only the Maxima symbolic math system is implemented.
-\$l is an optional comma-separated list of libraries. Example: \&cas('maxima','6*7')\\
+\&cas(\$s,\$e,\$l)&Evaluates the expression \$e inside the symbolic algebra system \$s. Currently, the Maxima symbolic math system ('maxima') and the R statistical computing system ('R') are implemented.
+\$l is an optional comma-separated list of libraries. Example: \&cas('maxima','diff(sin(x)/cos(x),x,2)')\\
\hline
\&implicit\_multiplication(\$f)&Adds mathematical multiplication operators to the formula expression \$f where only implicit multiplication is used. Example: \&implicit\_multiplication('2(b+3c)') returns 2*(b+3*c) \\
@@ -84,7 +84,7 @@ Option 4 - @all = \&languages($\backslas
\&y0(\$x), \&y1(\$x), \&yn(\$m,\$x), \&yv(\$y,\$x) & Bessel functions of the second kind with orders 0, 1 and m respectively. For yn(m,x), m must be an integer whereas for yv(y,x), y is real. \$x can be a pure number. \$m must be an integer and can be a pure integer number. \$y can be a pure real number \\
\hline
-\&random(\$l,\$u,\$d) & Returns a uniformly distributed random number between the lower bound, l and upper bound, u in steps of d. \$l, \$u and \$d can be pure numbers \\
+\&random(\$l,\$u,\$d) & Returns a uniformly distributed random number between the lower bound, l and upper bound, u in steps of d. d is optional. If omitted, a step of 1 is used. \$l, \$u and \$d can be pure numbers. \\
\hline
\&choose(\$i,...) & Choose the ith item from the argument list. i must be an integer greater than 0 and the value of i should not exceed the number of items. \$i can be a pure integer \\
@@ -133,7 +133,7 @@ Option 1 - \&map(\$seed,[$\backslash$\$w
\&name(), \&student\_number(), \&firstname(), \&middlename(), \&lastname() & Return the full name in the following format: lastname, firstname initial. Student\_number returns the student 9-alphanumeric string. The functions firstname, middlename, and lastname return just that part of the name. If undefined, the functions return null. \\
\hline
-\&check\_status(\$partid) &Returns a number identifying the current status of a part. True values mean that a part is ``done'' (either unanswerable because of tries exhaustion, or correct) or a false value if a part can still be attempted. If \$part is unspecified, it will check either the current $<$part$>$'s status or if outside of a $<$part$>$, check the status of previous $<$part$>$. The full set of return codes are: 'undef' means it is unattempted, 0 means it is attempted and wrong but still has tries, 1 means it is marked correct, 2 means they have exceed maximum number of tries, 3 means it after the answer date.\\
+\&check\_status(\$partid) &Returns a number identifying the current status of a part. True values mean that a part is ``done'' (either unanswerable because of tries exhaustion, or correct) or a false value if a part can still be attempted. If \$part is unspecified, it will check either the current $<$part$>$'s status or if outside of a $<$part$>$, check the status of previous $<$part$>$. The full set of return codes are: 'undef' means it is unattempted, 0 means it is attempted and wrong but still has tries, 1 means it is marked correct, 2 means they have exceeded maximum number of tries, 3 means it is after the answer date.\\
\hline
\&open\_date(\$partid), \&due\_date(\$partid), \&answer\_date(\$partid) & Problem open date, due date and answer date in local human-readable format. Part 0 is chosen if \$partid is omitted.\\
\hline
@@ -149,6 +149,9 @@ epoch (UTC), which can be used in calcul
\&stored\_data(\$name,\$partid) & Returns the stored data \$name. Partid is optional.\\
\hline
+\&wrong\_bubbles(\$correct,\$lower,\$upper,\$step,@given) & Returns an array that can be used for wrong answers in numerical responses. The first argument is the correct answer, the next arguments are the lower and upper boundaries for the bubbles, as well as the step size. The next argument is an
+optional array of wrong answers that should be included.\\
+\hline
\¤tpart() &
Returns the ID of the current part.\\
@@ -237,3 +240,13 @@ undef @name & To destroy the contents o
NOTE: \$ne is rounded using int() and the result must be positive. \$p must be between 0 and 1 exclusive. & Generate an array of \$item\_cnt outcomes generated from negative binomial distribution with \$ne events and the probabilty of an event in each trial is \$p. \\
\hline
\end{longtable}
+
+The \&EXT() \index{\&EXT}external function is extremely powerful, and is used to access parameters
+and submission values. It can be
+used within scripts and also within cell formulas in the grading spreadsheet.
+Some examples can be found by browsing in the repository to /res/msu/albertel/test/ext\_examples.html.
+The \&EXT() function can be used to obtain values for the same parameters as are retrived by some of the other (newer) helper functions
+summarized in the table above, such as \&firstname() which is equivalent to \&EXT(`environment.firstname'),
+and \¶meter\_setting(\$name,\$partid) is equivalent to \&EXT(`resource.'.\$partid.`.'.\$name).
+In such cases the newer (specialized) functions are preferred to &EXT() on the basis of ease of use.
+