Answer to Question 26-2
Here are the equations for reference.
(isPrefix.1) isPrefix([], B) = true
(isPrefix.2) isPrefix(A, []) = false (when A is not [])
(isPrefix.3) isPrefix(A, B) = head(A) == head(B) and
isPrefix(tail(A), tail(B))
(when A ≠ [] and B ≠ [])
Evaluation is as follows.
isPrefix([2,3,4], [2,4,3])
= 2 == 2 and isPrefix([3,4], [4,3]) by (isPrefix.3)
= true and isPrefix([3,4], [4,3])
= isPrefix([3,4], [4,3])
= 3 ==4 and isPrefix([4], [3]) by (isPrefix.3)
= false and isPrefix([4], [3])
= false