Search ('all' for everything):
Search results:
!x — generate values
&allocated — cumulative allocation
&collections — garbage collections
&features — implementation features
&regions — storage regions
&storage — storage utilization
?x — generate random value
bal — locate balanced characters
every do — generate every result
expr \ i — limit generator
expr1 | expr2 — evaluate alternatives
find — find string
function — generate function names
i to i by i — generate integers in sequence
key — generate keys from table
seq — generate sequence of integers
suspend do — suspend from procedure
upto — locate characters
v<–>v — exchange values reversibly
v<–x — assign value reversibly
|expr — evaluate repeatedly

Index of Function Types:
affects &pos
character sets
co-expressions
control structures
file processing
generators
infix operations
keywords
lists, sets and tables
math
metadata
output formatting
pattern matching
prefix operations
records
strings
windows and keyboards

Index of Subsystems:
base
digitcnt.icn
SNOBOL4 functions
 
generate random value
 
Description

?x1 : x2
If x1 is an integer, ?x1 produces a number from a pseudorandom sequence. If x1 > 0, it produces an integer in range 1 to x1, inclusive. If x1 = 0, it produces a real number in range 0.0 to 1.0.

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 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.

If x1 is a table, ?x1 produces the value of a randomly selected element of x1 as a variable.
 
Parameters
x1
integer, string, list, record, set or table
returns
a random element of x1
 
Errors
113 x1 not integer, string, or a structure
205 x1 < 0
 
See Also