Jump to content
  • 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?

Recommended Posts

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)

Share this post


Link to post
Share on other sites
Rui Carlos

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.

Share this post


Link to post
Share on other 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)

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.