Rule Matching
lConsider evaluating
lmember(3, [1, 2, 3, 4]) ==>  rule 3 is the first to apply
lmember(3, [2, 3, 4]) ==>     rule 3 is the first to apply
lmember(3, [3, 4]) ==>         rule 2 is the first to apply
l1
l
l
l
l
member(X, [ ]) => 0;       // rule 1
member(X, [X| R]) => 1;       // rule 2
member(X, [F| R]) => member(X, R);    // rule 3