Хорошо, поэтому мы еще не изучили полиморфные функции, но нам все еще нужно написать этот код.
Given:
nameEQ (a,_) (b,_) = a == b
numberEQ (_,a) (_,b) = a == b
intEQ a b = a == b
member :: (a -> a -> Bool) -> a -> [a] -> Bool
Я добавил:
member eq x ys | length ys < 1 = False
| head(ys) == x = True
| otherwise = member(x,tail(ys))
но я получаю ошибки о том, что яправильный тип, а также некоторые другие вещи.Мы должны увидеть, существует ли элемент в некотором типе.Итак, у нас есть эти 2 типа выше.Вот несколько примеров:
phoneDB = [("Jenny","867-5309"), ("Alice","555-1212"), ("Bob","621-6613")]
> member nameEQ ("Alice","") phoneDB
True
> member nameEQ ("Jenny","") phoneDB
True
> member nameEQ ("Erica","") phoneDB
False
> member numberEQ ("","867-5309") phoneDB
True
> member numberEQ ("","111-2222") phoneDB
False
> member intEQ 4 [1,2,3,4]
True
> member intEQ 4 [1,2,3,5]
False
не совсем уверен, что мне нужно делать здесь.Любая помощь или документация по этому вопросу было бы здорово.Спасибо!