nuno35 Posted October 31, 2018 at 10:26 AM Report #612242 Posted October 31, 2018 at 10:26 AM (edited) Bom Dia Tenho aqui duas duvidas simples mas que nao estou a conseguir resolver e secalhar ate existe uma função para isto, é basicamente dividir uma lista em tuplos de dois. por exemplo [1,2,3,4,5,6] fica [(1,2),(3,4),(5,6)] alguma ideia ? e o outro é ir buscar o indicie de um elemento de uma string tenho 2 e quero saber o índice dele na srtring"1234" Desde Já obrigado Edited October 31, 2018 at 10:30 AM by nuno35
thoga31 Posted October 31, 2018 at 06:24 PM Report #612249 Posted October 31, 2018 at 06:24 PM O que já tentaste fazer? Quais são as dúvidas específicas? Para o segundo caso, já existe uma função que faz o que pretendes, salvo erro na biblioteca Data.List. Contudo, é sempre um exercício interessante implementar a função por nós próprios, ainda para mais quando ela usa o tipo Maybe. Sugestão: usa uma função auxiliar à principal para conseguires usar um índice que te possa indicar a posição actual em que estás a pesquisar. foo x = innerfoo 1 x where innerfoo i (x:xs) = (i*x) + innerfoo xs Já para o primeiro caso, não me lembro de cor de uma função que faça o que pretendes, mas também não deve ser difícil de montar. Podes percorrer recursivamente uma lista usando este tipo de construtor: foo (x:xs) = x + foo xs Da mesma forma, podes expandir para mais elementos: bar (x:y:z:zs) = (x + y - z) * bar zs Assim, se pegares em dois elementos de cada vez, consegues ir construindo recursivamente a lista. Cumprimentos. Knowledge is free!
nuno35 Posted November 1, 2018 at 04:32 PM Author Report #612256 Posted November 1, 2018 at 04:32 PM (edited) Obrigado Edited November 3, 2018 at 08:11 PM by nuno35
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