Vrátiť sa, či daný znak je v zozname alebo nie bez použitia elem funkcie a rekurzia

0

Otázka

Budem musieť urobiť elementIsInList :: Eq a => a -> [a] -> Bool funkcie, ktoré by sa mali správať rovnakým spôsobom elem funkcia by sa správal, ale nemôžem používať rekurzia a samozrejme, elem funkcia sám. Myslel som, že o implementácii pomocou filter funkcia, ale nemôžem prísť na to, ako filter funguje. Som na správnej ceste?

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

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

Najlepšiu odpoveď

2

x == xs robí nie moc zmysel, x je prvok, hľadať, keďže xs je celý zoznam prvkov. Môžete využiť lambda výraz:

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

alebo infix prevádzkovateľ oddiel:

filter (x ==) xs

Okrem toho je potrebné skontrolovať, ak je tento zoznam prázdny. null :: Foldable f => f a -> Bool vráti True ak je zoznam prázdny, a False ak to tak nie je. Potom budete musieť negáciou výsledok s not :: Bool -> Bool.

2021-11-13 15:00:22

V iných jazykoch

Táto stránka je v iných jazykoch

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