Hints for list_equal.

  • If left is [], what does right have to be for left and right to be equal? (Come on, it's not too hard, you can figure it out.)

  • Suppose on the other hand that left has head left_hd and tail left_tl.

    1. If right is then [], are left and right equal?
    2. If right isn't [], and its head isn't equal to left_hd, are left and right equal?
    3. If right isn't [] and its head is equal to left_hd, what else has to be the case for left and right to be equal?

  • Can you now write a recursive definition of the list_equal function? What's your base case?