fun isEven(0) = true | isEven(1) = false | isEven(n) = isEven(n-2); fun isEven(0) = true | isEven(n) = not(isEven(n-1)); (* Ex 3.3.4, turnToInts *) fun turnToInts([]) =[] | turnToInts(true::rest) = 1::turnToInts(rest) | turnToInts(false::rest) = 0::turnToInts(rest); (* turnToBools *) fun turnToBools([]) =[] | turnToBools(0::rest) = false::turnToBools(rest) | turnToBools(x::rest) = true::turnToBools(rest); datatype bird = Robin | Sparrow | Crow | Cardinal; fun containsRobin([]) = false | containsRobin(Robin::rest) = true | containsRobin(x::rest) = containsRobin(rest);