Возвращает, находится ли данный символ в списке или нет, без использования функции elem и рекурсии

0

Вопрос

Я должен сделать elementIsInList :: Eq a => a -> [a] -> Bool функция, которая должна вести себя так же, как elem функция вела бы себя нормально, но я не могу использовать рекурсию и, конечно, elem сама функция. Я думал о том, чтобы реализовать его с помощью filter функция, но я не могу понять, как filter работает. На правильном ли я пути?

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

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

Лучший ответ

2

x == xs в этом нет особого смысла, x это элемент, который нужно искать, в то время как xs это весь список элементов. Вы можете использовать лямбда-выражение:

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

или раздела оператора инфикса:

filter (x ==) xs

Кроме того, вам нужно проверить, пуст ли список. null :: Foldable f => f a -> Bool будет возвращать True если список пуст, и False если это не так. Затем вам нужно будет отменить результат с помощьюnot :: Bool -> Bool.

2021-11-13 15:00:22

На других языках

Эта страница на других языках

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