Rafaela Soares Posted October 8, 2016 at 08:43 PM Report #599466 Posted October 8, 2016 at 08:43 PM Oi 🙂 Estou com algumas dificuldades em conseguir chegar à função deste exercício: positivos :: [Int] -> Bool que teste que uma lista só tem elementos positivos Coloquei: positivos :: [Int] -> Bool positivos [ ] = False positivos (h:t) = if h==(-h) then False else positivos t Só que não está a fazer muito sentido porque não sei como colocar o True :/
pwseo Posted October 8, 2016 at 10:25 PM Report #599470 Posted October 8, 2016 at 10:25 PM @Rafaela Soares, Explica-me a condição h == (-h) por favor. E outra pergunta: se esta é uma função recursiva, qual é o caso que serve de base?
Rafaela Soares Posted October 11, 2016 at 07:06 PM Author Report #599554 Posted October 11, 2016 at 07:06 PM Em 10/8/2016 às 23:25, pwseo disse: @Rafaela Soares, Explica-me a condição h == (-h) por favor. E outra pergunta: se esta é uma função recursiva, qual é o caso que serve de base? Forget.. Cheguei a esta nova tentativa de resolução. Mas continua a dar um errozinho. Quando coloco positivos [1,2,3] o resultado fica Falso... positivos :: [Int] -> Bool positivos [ ] = False positivos (h:t) | h<0 = False positivos (h:t) = h>0 && positivos t
thoga31 Posted October 16, 2016 at 08:15 PM Report #599659 Posted October 16, 2016 at 08:15 PM Quando chegas ao fim da lista [1,2,3] - i.e., chegas ao valor 3 -, (h:t) toma que valores? Dica: quando vais no início da lista, h = 1 e t = [2,3] = 2:3:[]. Knowledge is free!
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