Verilen karakterin bir listede olup olmadığını elem işlevi ve özyineleme kullanılmadan döndürür

0

Soru

Yapmak lazım elementIsInList :: Eq a => a -> [a] -> Bool aynı şekilde davranması gereken işlev elem işlev davranırdı, ancak özyinelemeyi kullanamıyorum ve tabii ki elem işlevin kendisi. Bunu kullanarak uygulamayı düşündüm filter işlev, ama nasıl olduğunu anlayamıyorum filter işler. Doğru yolda mıyım?

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

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

En iyi cevabı

2

x == xs çok mantıklı , x aranacak bir unsurdur, oysa xs bu, öğelerin tüm listesidir. Bir lambda ifadesi kullanabilirsiniz:

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

veya bir infix işleci bölümünün:

filter (x ==) xs

Ayrıca, listenin boş olup olmadığını kontrol etmeniz gerekir. null :: Foldable f => f a -> Bool geri dönecek True liste boşsa ve False hayır değil. Daha sonra sonucu şu şekilde reddetmeniz gerekecektir:not :: Bool -> Bool.

2021-11-13 15:00:22

Diğer dillerde

Bu sayfa diğer dillerde

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