## Recommended Posts

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 by thoga31
GeSHi
##### Share on other sites

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!

##### Share on other sites

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

## Create an account

Register a new account

×

• #### Revista PROGRAMAR

• Wiki
• IRC
×
• Create New...