Zwraca, czy ten symbol na liście, czy nie, bez użycia funkcji elem i rekurencji

0

Pytanie

Muszę zrobić elementIsInList :: Eq a => a -> [a] -> Bool funkcja, która powinna zachowywać się tak samo, jak elem funkcja zachowywała się normalnie, ale nie mogę korzystać z rekurencji i, oczywiście, elem sama funkcja. Myślałem o tym, aby go zrealizować z pomocą filter funkcja, ale nie mogę zrozumieć, jak filter działa. Na dobrej, czy jestem w drodze?

elementIsInList x xs = filter(x==xs) xs

haskell higher-order-functions list
2021-11-13 14:55:45
1

Najlepsza odpowiedź

2

x == xs w tym nie ma sensu, x jest to element, który trzeba szukać, podczas gdy xs jest to pełna lista elementów. Można użyć wyrażenie lambda:

filter (\x -> x == y) xs

lub partycji operatora инфикса:

filter (x ==) xs

Ponadto, trzeba sprawdzić, czy lista jest pusta. null :: Foldable f => f a -> Bool zwróci True jeśli lista jest pusta, i False jeśli to nie tak. Następnie trzeba będzie anulować wynik z pomocąnot :: Bool -> Bool.

2021-11-13 15:00:22

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................