See also: N1 + N2
See also: N1 - N2
See also: match(), tab(), and N1 = N2()
See also: x @ C
See also: N1 ^ N2
See also: N1 * N2
If x1 is a string, ?x1 produces a randomly selected one-character substring of x1 that is a variable if x1 is a variable.
If x1 is a list, table, or record, ?x1 produces a randomly selected element, which is a variable, from x1.
If x1 is a set, ?x1 produces a randomly selected member of x1.
See also: s ? expr
If x1 is a string, !x1 generates the one-character substrings of x1, and produces variables if x1 is a variable.
If x1 is a list, table, or record, !x1 generates the elements, which are variables, of x1. For lists and records, the order of generation is from the beginning to the end, but for tables it is unpredictable.
If x1 is a set, !x1 generates the members of x1 in no predictable order.
See also: N1 / N2
See also: expr \ i
See also: R.f