fpfcarvalho Posted May 26, 2008 Report Share Posted May 26, 2008 (defun bloco (sudoku x y) (loop repeat 3 for x from (* 3 (floor x 3)) append (loop repeat 3 for y from (* 3 (floor y 3)) collect (aref sudoku y x)))) Nesta função, define-se a função bloco do sudoku. Gostaria que me alguem explicasse melhor aquele ciclo "loop", mais concretamente o que faz o "(* 3(floor x 3))". Aguardo respostas. 😉 Link to comment Share on other sites More sharing options...
pedrotuga Posted May 26, 2008 Report Share Posted May 26, 2008 viva (* 3 (floor x 3)) o que aparece imediatamente apos o parentesis de abertura é a funcao que é chamada, os restantes termos sao argumentos e aparecem separados por espacos. Na tua pergunta comeste um espaco a o transcrever essa linha. O qu isso faz é: multiplica (daí o asterisco, o asterisco é multiplicacao) 3 por (floor x 3) por sua vez, (floor x 3) é uma chamada à funcao "floor" com os argumentos x e 3. A funcao flor devolve o argumento mais baixo de todos. Entao pondo isso tudo junto, o que essa linha faz é: multiplica 3 por 3 ou por x, o mais baixo dos dois. Link to comment Share on other sites More sharing options...
fpfcarvalho Posted May 26, 2008 Author Report Share Posted May 26, 2008 ja percebi 😁 obrigadao 😉 ja agora (defun numero_falta (lista) (loop for i from 1 to 9 with resultado = '() finally (return resultado) do (unless (find i lista) (push i resultado)))) nesta função, onde e k se ve onde sao os numeros diferentes de 1 a 9 ?? Link to comment Share on other sites More sharing options...
djthyrax Posted May 26, 2008 Report Share Posted May 26, 2008 unless (find i lista) (push i resultado) Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
fpfcarvalho Posted May 26, 2008 Author Report Share Posted May 26, 2008 pois.. thanks 😉 Link to comment Share on other sites More sharing options...
fpfcarvalho Posted May 28, 2008 Author Report Share Posted May 28, 2008 alguem me podia explicar o k faz a funçao "aref" em LISP?? se eu tiver (aref sudoku l c), o ke k isto significa? Link to comment Share on other sites More sharing options...
Warrior Posted May 28, 2008 Report Share Posted May 28, 2008 http://www.dca.ufrn.br/~adelardo/lisp/ - Secção 2.12 http://www.n-a-n-o.com/lisp/cmucl-tutorials/LISP-tutorial-16.html Tinhas descoberto isto com uma pesquisa no google.. Link to comment Share on other sites More sharing options...
fpfcarvalho Posted May 28, 2008 Author Report Share Posted May 28, 2008 http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node159.html eu tinha ido aqui, mas o que fiquei a perceber da funçao e k retorna os valores formados pela junçao dos elementos das linhas e das colunas. so queria saber se era assim a definiçao correcta daquela parte de codigo. 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