22 lines
555 B
Text
22 lines
555 B
Text
class ibool
|
|
function __construct(b)
|
|
assert(type(b) == "boolean", "argument must be a boolean")
|
|
self.b = b
|
|
end
|
|
|
|
function iff(cond) return cond ? self.b : not self.b end
|
|
end
|
|
|
|
local itrue = new ibool(true)
|
|
|
|
local need_umbrella
|
|
local raining = true
|
|
|
|
-- Normal syntax.
|
|
if raining then need_umbrella = true end
|
|
print($"Is it raining? {raining}. Do I need an umbrella? {need_umbrella}")
|
|
|
|
-- Inverted syntax.
|
|
raining = false
|
|
need_umbrella = itrue:iff(raining)
|
|
print($"Is it raining? {raining}. Do I need an umbrella? {need_umbrella}")
|