System variable
__
__
is the input expression currently being evaluated.
That is, while an input expression expr is being evaluated, __
is expr.
__
is assigned the input expression before the input is simplified or evaluated.
However, the value of __
is simplified (but not evaluated) when it is displayed.
__
is recognized by batch
and load
.
In a file processed by batch
,
__
has the same meaning as at the interactive prompt.
In a file processed by load
,
__
is bound to the input expression most recently entered at the interactive prompt
or in a batch file;
__
is not bound to the input expressions in the file being processed.
In particular, when load (filename)
is called from the interactive prompt,
__
is bound to load (filename)
while the file is being processed.
Examples:
(%i1) print ("I was called as", __); I was called as print(I was called as, __) (%o1) print(I was called as, __) (%i2) foo (__); (%o2) foo(foo(__)) (%i3) g (x) := (print ("Current input expression =", __), 0); (%o3) g(x) := (print("Current input expression =", __), 0) (%i4) [aa : 1, bb : 2, cc : 3]; (%o4) [1, 2, 3] (%i5) (aa + bb + cc)/(dd + ee + g(x)); cc + bb + aa Current input expression = -------------- g(x) + ee + dd 6 (%o5) ------- ee + dd