summaryrefslogtreecommitdiffhomepage
path: root/erlang.html.markdown
diff options
context:
space:
mode:
Diffstat (limited to 'erlang.html.markdown')
-rw-r--r--erlang.html.markdown8
1 files changed, 6 insertions, 2 deletions
diff --git a/erlang.html.markdown b/erlang.html.markdown
index 322e437d..a897755e 100644
--- a/erlang.html.markdown
+++ b/erlang.html.markdown
@@ -167,8 +167,12 @@ is_dog(A) -> false.
% A guard sequence is either a single guard or a series of guards, separated
% by semicolons (`;`). The guard sequence `G1; G2; ...; Gn` is true if at
% least one of the guards `G1`, `G2`, ..., `Gn` evaluates to `true`.
-is_pet(A) when is_dog(A); is_cat(A) -> true;
-is_pet(A) -> false.
+is_pet(A) when is_atom(A), (A =:= dog) or (A =:= cat) -> true;
+is_pet(A) -> false.
+
+% Warning: not all valid Erlang expressions can be used as guard expressions;
+% in particular, our `is_cat` and `is_dog` functions cannot be used within the
+% guard sequence in `is_pet`'s definition.
% Records provide a method for associating a name with a particular element in a
% tuple.