Comebeer Posted December 6, 2009 at 01:26 PM Report Share #298899 Posted December 6, 2009 at 01:26 PM boas! tenho uma duvida: gostaria de saber como posso alterar um dos caracteres da lista em baixo dando a sua posicao e o novo caracter por exemplo troca (0,2) % [".....","-----","-.-..","_-_-_","....."] = [".....","-----","%.-..","_-_-_","....."] se der jeito tenho o que devolve o carater da x posicao get (x,y) list = (list !! x) !! y agradecia uma ajuda ? Link to comment Share on other sites More sharing options...
Rui Carlos Posted December 6, 2009 at 01:35 PM Report Share #298901 Posted December 6, 2009 at 01:35 PM Primeiro deves verificar a validade da posição. Depois podes usar as funções take e drop para fazer a substituição. Rui Carlos Gonçalves Link to comment Share on other sites More sharing options...
SexPistolsPT Posted December 11, 2009 at 09:57 PM Report Share #299960 Posted December 11, 2009 at 09:57 PM é fácil: troca (x,y) c p = take y p ++[take x (p!!y) ++ [c] ++ drop (x+1) (p!!y)] ++ drop (y+1) (p!!y) onde c é o novo char e p a lista em questão. em take y p vais retirar todos os elementos até à linha onde vais mudar o char em take x (p!!y) vais tirar todos os elementos da linha y em questão até à posição x do elemento a retirar [c] juntas o novo elemento drop (x+1) (p!!y) voltas a colocar todos os elementos dessa linha a seguir ao elemento que trocaste drop (y+1) (p!!y) junta todas as linhas seguintes à linha onde estava o elemento a alterar 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