Boolean
From Erights
(Redirected from True)
The Boolean type has exactly two members, false and true. All three of these objects print with those names.
? true # value: true ? false # value: false ? boolean # value: Boolean
The universal scope contains boolean (no capital), false, and true.
Contents |
[edit]
Protocol
[edit]
pick/2
pick(t, f) :any
false.pick(t, f) returns f; true.pick(t, f) returns t.
? true.pick(1, 2) # value: 1 ? false.pick(3, 4) # value: 4
[edit]
not/0
not() :Boolean
Boolean negation.
? !true # value: false ? !false # value: true
[edit]
or/1
or(other :Boolean) :Boolean
Boolean or. The argument is coerced to a boolean.
? false | false
# value: false
? false | true
# value: true
? false | def _{to __conformTo(==boolean) :any {return false}}
# value: false
? true | false
# value: true
? true | true
# value: true
? true | -1
# problem: the int -1 doesn't coerce to a boolean
? true | def _{to __conformTo(==boolean) :any {return true}}
# value: true
[edit]
and/1
and(other :Boolean) :Boolean
Boolean and. The argument is coerced to a boolean.
? true & true
# value: true
? true & false
# value: false
? true & def _{to __conformTo(==boolean) :any {return true}}
# value: true
? false & true
# value: false
? false & false
# value: false
? false & -1
# problem: the int -1 doesn't coerce to a boolean
? false & def _{to __conformTo(==boolean) :any {return false}}
# value: false
XXX discuss ideal default wording of coercion failure errors
[edit]
xor/1
xor(other :Boolean) :Boolean
Boolean exclusive or. The argument is coerced to a boolean.
? false ^ false
# value: false
? false ^ true
# value: true
? true ^ def _{to __conformTo(==boolean) :any {return true}}
# value: false
? true ^ false
# value: true
? true ^ true
# value: false
? false ^ -1
# problem: the int -1 doesn't coerce to a boolean
? false ^ def _{to __conformTo(==boolean) :any {return true}}
# value: true
[edit]
op__cmp/1
Comparison with other Booleans. See Message op__cmp.
XXX write tests for this
