Jump to content
AprendizZ

Verificar existência de elementos de uma lista noutra lista

Recommended Posts

AprendizZ

Pretendo criar uma pequena função que recursivamente procura verificar se todos os elementos de uma 1ª lista, um a um, existente numa 2ª lista. Tendo por resultado True ou False.

Por exemplo: procurar [1,2,3] [1..10], resulta True, procurar [1,2,3] [1,1,1,1,1,1,1,1], resulta False.

Já fiz uma coisa inicial que é (que deve ser possível melhorar num formato melhor):

teste xs ys
| null xs = []
| elem (head xs) ys == True = True
| otherwise = False

mas não estou a ver como faço a recursividade de forma a comparar todos os elementos da 1ª lista.

Obrigado por qualquer ajuda.

Share this post


Link to post
Share on other sites
brunoais

teste xs ys
| null xs = []
| elem (head xs) ys == True = True
| otherwise = False

Isso está mal pensado em relação ao que queres.

Isso seria mais eficiente se fizesses assim:

searchFor _ [] = False
searchFor elem (listElem:list) = elem == listElem || searchFor elem list

This code is used to search an element in a list. Now... Can you make code to test each element from the 1st list into the 2nd list?

Edit: Desc... Escrevi em inglês  :cheesygrin:

Este código é usado para procurar um elemento numa lista... Consegues fazer um para testar cada elemento da 1ª lista e testar isso na 2ª lista?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites
Baderous

Consegues resolver isso numa linha usando estas 3 funções: elem, map e and.

Share this post


Link to post
Share on other sites
kurayama

Se a intersecção entre as duas listas for igual à primeira.. Tambem dá numa linha :)

Share this post


Link to post
Share on other sites
AprendizZ

Caros amigos,

Desculpem a minha ignorância, mas ainda sou novato no Haskell.

Estive a tentar arranjar alguma coisa com o que o Baderous disse: map, elem e and (mas sinceramente

o meu conhecimento não ajudou muito, até agora).

A solução de intersecção também me parece boa, mas não sei como chegar lá.

Eu sei que tenho ainda de "partir bastante pedra", mas poderiam ser um pouquinho mais explícitos.

Muito obrigado (e já agora um bom ano novo para todos).

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.