crislanio_macedo Posted March 11, 2015 at 01:03 AM Report Share #579119 Posted March 11, 2015 at 01:03 AM (edited) Pessoal a função abaixo está dando erros, a ideia é simples porém não está sendo usado os argumentos de forma correta. verify a b =if a==b then True else False elem' e [] = False elem' e a@(x:xs) = if any (verify e x) a then True else any (verify e (head a) )(elem' e xs) -- elem' e [] = False elem' e a@(x:xs) = if any (e==x) a then True else any (e==head a ) (elem' e xs) Edited March 11, 2015 at 01:18 AM by thoga31 GeSHi Link to comment Share on other sites More sharing options...
thoga31 Posted March 11, 2015 at 01:13 AM Report Share #579122 Posted March 11, 2015 at 01:13 AM Se usas a função any, para que precisas de recursividade? Desta vez a resolução é tão simples que simplesmente a vou dar para que vejas o embróglio de complicação que estás a criar 😛 elem1 a = any (== a) E aí está o uso do any para verificar se um elemento a está presenta numa lista. 😉 Uma outra questão: isto é código desnecessário... verify a b =if a==b then True else False Basta-te isto: verify a b = a == b O resultado de a == b é True ou False, portanto não precisas de nenhum if. Knowledge is free! Link to comment Share on other sites More sharing options...
pwseo Posted March 11, 2015 at 03:26 PM Report Share #579159 Posted March 11, 2015 at 03:26 PM E já agora: -- se: verify a b = a == b -- então: verify = (==) Ou seja, uma função como essa é completamente redundante. Quando tentas refazer código por ti próprio, crislanio_macedo, nem todas as funções precisam de ser reinventadas (o caso da verify é prova disso -- fica tudo muito mais simples se utilizares (==) directamente) 1 Report Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now