Пролог твердит 'no' мне .... :(Пролог: правило, чтобы проверить пифагорейский триплет?
Я очень новичок в Prolog, у меня есть основной вопрос:
Так что я пытаюсь создать простое правило, которое проверяет, если три числа представляют собой длину стороны прямоугольного треугольника, как это:
addup(X,Y,Z) :- X is Y+Z. /* this works*/
pythag(H,A,B) :- (H*H) is (A*A) + (B*B). /*this doesn't work*/
для тестирования, «addup» правило не появляется на работе .... Я считаю, что есть проблема с левая часть «ИС» в моей программе, так как г теста, кажется, указывают на это:
В интерактивном режиме смогу в том 2 является суммой 1 и 1, и он говорит, да:
| ?- 2 is 1+1.
yes
Но если я переключаю левую и правую стороны; он говорит:
| ?- 1+1 is 2.
no
Может ли кто-нибудь предоставить правильную версию правила pythag выше? Информация о версии следующим образом:
GNU Prolog 1.3.0
By Daniel Diaz
Copyright (C) 1999-2007 Daniel Diaz
| ?-
Компьютер говорит Да ! Благодаря ! [Https://www.youtube.com/watch?v=nm6bKkG_Mrc] – monojohnny