routine so
1 | language documentation Operators |
1.1 | (Operators) prefix so |
2 | enum Bool |
2.1 | (Bool) prefix so |
3 | class Mu |
3.1 | (Mu) method so |
Documentation for routine so
assembled from the following types:
language documentation Operators
From Operators
(Operators) prefix so
multi sub prefix:<so>(Mu --> Bool)
Evaluates its argument in boolean context (and thus collapses Junctions), and returns the result.
enum Bool
From Bool
(Bool) prefix so
multi sub prefix:<so>(Mu --> Bool)
Coerces its argument to Bool
, has looser precedence than prefix:<?>
.
class Mu
From Mu
(Mu) method so
method so()
Evaluates the item in boolean context (and thus, for instance, collapses Junctions), and returns the result. It is the opposite of not
, and equivalent to the ?
operator.
One can use this method similarly to the English sentence: "If that is so, then do this thing". For instance,
my = <-a -e -b -v>;my = any() eq '-v' | '-V';if .so# OUTPUT: «Verbose option detected in arguments»
The $verbose-selected
variable in this case contains a Junction
, whose value is any(any(False, False), any(False, False), any(False, False), any(True, False))
. That is actually a truish value; thus, negating it will yield False
. The negation of that result will be True
. so
is performing all those operations under the hood.