fork download
  1. // lambda calculus revisited
  2.  
  3. T = m => n => m; // the 1st parameter is selected - true
  4. F = m => n => n; // the 2nd parameter is selected - false
  5.  
  6. N = p => p(F)(T);
  7. A = p => q => p(q)(p); // p(q)(F)
  8. O = p => q => p(p)(q); // p(T)(q)
  9. X = p => q => p(q(F)(T))(q);
  10.  
  11. console.log("Some logic operations:")
  12. console.log(T("T")("F") + " represents true.");
  13. console.log(F("T")("F") + " represents false.");
  14. console.log("!T=" + N(T)("T")("F"));
  15. console.log("!F=" + N(F)("T")("F"));
  16.  
  17. console.log("AND operations:");
  18. console.log("T+T=" + A(T)(T)("T")("F"));
  19. console.log("T+F=" + A(T)(F)("T")("F"));
  20. console.log("F+T=" + A(F)(T)("T")("F"));
  21. console.log("F+F=" + A(F)(F)("T")("F"));
  22.  
  23. console.log("OR operations:");
  24. console.log("T+T=" + O(T)(T)("T")("F"));
  25. console.log("T+F=" + O(T)(F)("T")("F"));
  26. console.log("F+T=" + O(F)(T)("T")("F"));
  27. console.log("F+F=" + O(F)(F)("T")("F"));
  28.  
  29. console.log("XOR operations:");
  30. console.log("T+T=" + X(T)(T)("T")("F"));
  31. console.log("T+F=" + X(T)(F)("T")("F"));
  32. console.log("F+T=" + X(F)(T)("T")("F"));
  33. console.log("F+F=" + X(F)(F)("T")("F"));
Success #stdin #stdout 0.05s 16840KB
stdin
Standard input is empty
stdout
Some logic operations:
T represents true.
F represents false.
!T=F
!F=T
AND operations:
T+T=T
T+F=F
F+T=F
F+F=F
OR operations:
T+T=T
T+F=T
F+T=T
F+F=F
XOR operations:
T+T=F
T+F=T
F+T=T
F+F=F