Skip to content

Instantly share code, notes, and snippets.

@m-2k
Forked from 5HT/gist:9117cff45331596272b9
Created March 5, 2016 13:11
Show Gist options
  • Save m-2k/2c5e49d78ec3f52616f4 to your computer and use it in GitHub Desktop.
Save m-2k/2c5e49d78ec3f52616f4 to your computer and use it in GitHub Desktop.
-define(IS_ALPHA(C),
(C =:= $a) or (C =:= $b) or (C =:= $c) or (C =:= $d) or (C =:= $e) or
(C =:= $f) or (C =:= $g) or (C =:= $h) or (C =:= $i) or (C =:= $j) or
(C =:= $k) or (C =:= $l) or (C =:= $m) or (C =:= $n) or (C =:= $o) or
(C =:= $p) or (C =:= $q) or (C =:= $r) or (C =:= $s) or (C =:= $t) or
(C =:= $u) or (C =:= $v) or (C =:= $w) or (C =:= $x) or (C =:= $y) or
(C =:= $z) or
(C =:= $A) or (C =:= $B) or (C =:= $C) or (C =:= $D) or (C =:= $E) or
(C =:= $F) or (C =:= $G) or (C =:= $H) or (C =:= $I) or (C =:= $J) or
(C =:= $K) or (C =:= $L) or (C =:= $M) or (C =:= $N) or (C =:= $O) or
(C =:= $P) or (C =:= $Q) or (C =:= $R) or (C =:= $S) or (C =:= $T) or
(C =:= $U) or (C =:= $V) or (C =:= $W) or (C =:= $X) or (C =:= $Y) or
(C =:= $Z)
).
is_alpha_cow(X) when ?IS_ALPHA(X) -> true;
is_alpha_cow(X) -> false.
is_alpha_bull(X) when (X > $a andalso X < $z) orelse (X > $A andalso X < $Z) -> true;
is_alpha_bull(X) -> false.
mcow() -> Bin = crypto:rand_bytes(1000), timer:tc(sample,measure_cow,[Bin]).
mbull() -> Bin = crypto:rand_bytes(1000), timer:tc(sample,measure_bull,[Bin]).
measure_cow(<<>>) -> <<>>;
measure_cow(<<B,Bin/binary>>) -> is_alpha_cow(B), measure_cow(Bin).
measure_bull(<<>>) -> <<>>;
measure_bull(<<B,Bin/binary>>) -> is_alpha_bull(B), measure_bull(Bin).
(privat48@127.0.0.1)27> sample:mbull().
{104,<<>>}
(privat48@127.0.0.1)28> sample:mcow().
{64,<<>>}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment