Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Ziwdon

[RESOLVIDO][Prolog - Iniciado] Onde está o erro?

Mensagens Recomendadas

Ziwdon

Boa noite,

Agradecia se alguém me pudesse fornecer ajuda com o seguinte.

Tenho o seguinte código:

homem(adao).
homem(caim).
homem(abel).

pais(adao,caim).
pais(adao,abel).

pai(F,C):-homem(F),pais(F,C).

irmao(I1,I2):-pai(P1,I1),pai(P2,I2),P1 is P2,I1 \= I2.

Na última linha, na regra que define um irmão, ocorre o seguinte erro:

ERROR: is/2: Arithmetic: `adao/0' is not a function

Eu consigo corrigir a regra de modo a contornar o problema do seguinte modo:

irmao(I1,I2):-pai(P1,I1),pai(P1,I2),I1 \= I2. % código correcto

Contudo, gostava de perceber o que está errado no código inicial, uma vez que a lógica do mesmo me parece correcta.

Desde já o meu obrigado.

Cumprimentos.


"Rejoice not against me, O mine enemy: when I fall, I shall arise; when I sit in darkness, the LORD shall be a light unto me." - Micah 7:8 (KJV)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Ziwdon

Nao me parece que P1 is P2 faça sentido. Quando usava o is era para atribuir um valor à primeira variável, quando aqui parece-me que as querias comparar.

Hmm...mas o meu professor disse-me que is tanto servia para comparar como para atribuir... :S

Talvez seja esse o problema então. Pelo menos faz sentido.

Obrigado pela ajuda Rui =).

Cumprimentos.


"Rejoice not against me, O mine enemy: when I fall, I shall arise; when I sit in darkness, the LORD shall be a light unto me." - Micah 7:8 (KJV)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.