This commit is contained in:
Ingy döt Net 2013-10-27 22:24:23 +00:00
parent 6f050a029e
commit 776bba907c
3887 changed files with 59894 additions and 7280 deletions

View file

@ -0,0 +1,17 @@
#!/usr/bin/awk -f
BEGIN {
print (a(1) && b(1));
print (a(1) || b(1));
print (a(0) && b(1));
print (a(0) || b(1));
}
function a(x) {
print " x:"x;
return x;
}
function b(y) {
print " y:"y;
return y;
}

View file

@ -0,0 +1,22 @@
-module( short_circuit_evaluation ).
-export( [task/0] ).
task() ->
[task_helper(X, Y) || X <- [true, false], Y <- [true, false]].
a( Boolean ) ->
io:fwrite( " a ~p~n", [Boolean] ),
Boolean.
b( Boolean ) ->
io:fwrite( " b ~p~n", [Boolean] ),
Boolean.
task_helper( Boolean1, Boolean2 ) ->
io:fwrite( "~p andalso ~p~n", [Boolean1, Boolean2] ),
io:fwrite( "=> ~p~n", [a(Boolean1) andalso b(Boolean2)] ),
io:fwrite( "~p orelse ~p~n", [Boolean1, Boolean2] ),
io:fwrite( "=> ~p~n", [a(Boolean1) orelse b(Boolean2)] ).

View file

@ -1,27 +1,33 @@
bundle Default {
class ShortCircuit {
function : a(a : Bool) ~ Bool {
"a"->PrintLine();
return a;
}
class ShortCircuit {
function : a(a : Bool) ~ Bool {
"a"->PrintLine();
return a;
}
function : b(b : Bool) ~ Bool {
"b"->PrintLine();
return b;
}
function : b(b : Bool) ~ Bool {
"b"->PrintLine();
return b;
}
function : Main(args : String[]) ~ Nil {
IO.Console->Instance()->Print("F and F = ")->PrintLine(a(false) & b(false));
IO.Console->Instance()->Print("F or F = ")->PrintLine(a(false) | b(false));
function : Main(args : String[]) ~ Nil {
result := a(false) & b(false);
"F and F = {$result}"->PrintLine();
result := a(false) | b(false);
"F or F = {$result}"->PrintLine();
IO.Console->Instance()->Print("F and T = ")->PrintLine(a(false) & b(true));
IO.Console->Instance()->Print("F or T = ")->PrintLine(a(false) | b(true));
result := a(false) & b(true);
"F and T = {$result}"->PrintLine();
result := a(false) | b(true);
"F or T = {$result}"->PrintLine();
IO.Console->Instance()->Print("T and F = ")->PrintLine(a(true) & b(false));
IO.Console->Instance()->Print("T or F = ")->PrintLine(a(true) | b(false));
result := a(true) & b(false);
"T and F = {$result}"->PrintLine();
result := a(true) | b(false);
"T or F = {$result}"->PrintLine();
IO.Console->Instance()->Print("T and T = ")->PrintLine(a(true) & b(true));
IO.Console->Instance()->Print("T or T = ")->PrintLine(a(true) | b(true));
}
result := a(true) & b(true);
"T and T = {$result}"->PrintLine();
result := a(true) | b(true);
"T or T = {$result}"->PrintLine();
}
}