Skip to content

Instantly share code, notes, and snippets.

@foxbunny
Last active February 22, 2017 19:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save foxbunny/72b63eae8268dd63d0c7cad8211bb79f to your computer and use it in GitHub Desktop.
Save foxbunny/72b63eae8268dd63d0c7cad8211bb79f to your computer and use it in GitHub Desktop.
-module(max).
-export([maxThree/3, howManyEqual/3, xOr1/2, xOr2/2, xOr3/2, tests/0]).
maxThree(X, Y, Z) -> max(X, max(Y, Z)).
xOr1(X, Y) -> not (X == Y).
xOr2(X, Y) -> X =/= Y.
xOr3(X, Y) -> X == not(Y).
xOr4(X, true) -> X == false;
xOr4(X, false) -> X == true.
howManyEqual(X, X, X) -> 3;
howManyEqual(X, X, _Y) -> 2;
howManyEqual(X, _Y, X) -> 2;
howManyEqual(_Y, X, X) -> 2;
howManyEqual(_X, _Y, _Z) -> 0.
tests() ->
false = xOr1(false, false),
true = xOr1(true, false),
true = xOr1(false, true),
false = xOr1(true, true),
false = xOr2(false, false),
true = xOr2(true, false),
true = xOr2(false, true),
false = xOr2(true, true),
false = xOr3(false, false),
true = xOr3(true, false),
true = xOr3(false, true),
false = xOr3(true, true),
false = xOr4(false, false),
true = xOr4(true, false),
true = xOr4(false, true),
false = xOr4(true, true),
0 = howManyEqual(1,2,3),
2 = howManyEqual(1,1,3),
2 = howManyEqual(1,3,3),
3 = howManyEqual(1,1,1),
pass.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment