Я боролся с упражнением в течение нескольких часов, поэтому я ищу помощь.
Я должен переписать эту функцию:
def is_in(eq,e,E):
""" (alpha*alpha -> bool) * alpha * list[alpha] -> bool
Return True if e is equal to one element of E according to eq"""
if len(E)==0:
return False
elif eq(e,E[0]):
return True
else:
return is_in(eq,e,E[1:])
is_in
проверяет, еслиэлемент находится в наборе (представлен в виде списка).Дело в том, что два элемента могут быть «одинаковыми», но оператор ==
вернет false (например, мы считаем, что [0,1] и [1,0] одинаковы)
Кроме того, чтобы сделать is_in
, я должен использовать функцию, которую я сделал ранее:
def exists(L, p):
""" list[alpha] * (alpha -> bool) -> bool
Return True if at least one element x of L is such as p(x)==True"""
for a in L:
if p(a):
return True
return False
Мы только начали изучать функции более высокого порядка, поэтому мне удалось написать несколько, но не эту.
Спасибо за помощь