Logical := function(a, b)
return [ a or b, a and b, not a ];
end;
Logical(true, true);
# [ true, true, false ]
Logical(true, false);
# [ true, false, false ]
Logical(false, true);
# [ true, false, true ]
Logical(false, false);
# [ false, false, true ]