Vrátí, zda daný znak je v seznamu, nebo ne, bez použití elem funkce a rekurze

0

Otázka

Musím udělat elementIsInList :: Eq a => a -> [a] -> Bool funkce, které by se měly chovat stejně elem funkce by se měl chovat, ale nemůžu použít rekurzi a samozřejmě, elem funkce sám. Myslel jsem, že o realizaci pomocí filter funkce, ale nemůžu přijít na to, jak filter funguje. Jsem na správné cestě?

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

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

Nejlepší odpověď

2

x == xs nedává ani moc smysl, x je prvek, hledat, vzhledem k tomu, že xs je celý seznam prvků. Můžete využít lambda výrazu:

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

nebo infix provozovatel sekce:

filter (x ==) xs

Dále je třeba zkontrolovat, zda seznam je prázdný. null :: Foldable f => f a -> Bool vrátí True je-li seznam prázdný, a False pokud tomu tak není. Pak budete muset negovat výsledek s not :: Bool -> Bool.

2021-11-13 15:00:22

V jiných jazycích

Tato stránka je v jiných jazycích

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