This is written in an equational pseudocode. Assume that the cases are tried in order.
numEven([]) = 0 numEven(h::t) = 1 + numEven(t) when isEven(h) numEven(h::t) = numEven(t)