Ok, cela va probablement être dans le prélude, mais : existe-t-il une fonction de la bibliothèque standard pour trouver les éléments uniques d'une liste ? ma (ré)implémentation, pour clarification, est la suivante :
has :: (Eq a) => [a] -> a -> Bool
has [] _ = False
has (x:xs) a
| x == a = True
| otherwise = has xs a
unique :: (Eq a) => [a] -> [a]
unique [] = []
unique (x:xs)
| has xs x = unique xs
| otherwise = x : unique xs
14 votes
Su
has
est également standard ; c'est justeflip elem
.5 votes
Ou même
has xs = (`elem` xs)
.0 votes
@yatima2975 pourquoi utilisez-vous
elem
en tant qu'infixe ?1 votes
@dopatraman Parce que
elem
a un typeEq a => a -> [a] -> Bool
donc l'utiliser comme une section d'opération infixe rendxs
le deuxième argument.(`elem` xs)
est désugarisé en(\x -> elem x xs)
ce qui est ce que nous voulons ici !