Почему ничего не происходит, когда я нажимаю кнопку СУММА?

Я пытался сделать интерфейс в Прологе, используя XPCE. Я использовал Dialog Editor, и он генерировал мой код в Прологе. Когда я нажимаю кнопку SUM, ничего не происходит, я не понимаю, почему, но я думаю, что проблема в сумме.

dialog(zbrajanje,
   [ object        :=
       Zbrajanje,
     parts         :=
       [ Zbrajanje   :=
           dialog('Zbrajanje'),
         Unesi       :=
           button(unesi),
         Odustani    :=
           button(odustani),
         Text_item_1 :=
           text_item(text_item1),
         Text_item_2 :=
           text_item(text_item2),
         Rezultat    :=
           text_item('Rezultat')
       ],
     modifications :=
       [ Text_item_1 := [ length := 26
                        ]
       ],
     layout        :=
       [ area(Unesi,
              area(52, 148, 80, 24)),
         area(Odustani,
              area(224, 146, 80, 24)),
         area(Text_item_2,
              area(66, 39, 260, 24)),
         area(Text_item_1,
              area(66, 63, 260, 24)),
         area(Rezultat,
              area(67, 90, 246, 24))
       ],
     behaviour     :=
       [ SUM    := [ message := message(@prolog,
                                          sum,
                                          Text_item_2?selection,
                                          Text_item_1?selection,
                                          Rezultat)
                     ],
         EXIT := [ message := message(Zbrajanje, return, @nil)
                     ]
       ]
   ]).

sum(X,0,X).
sum(X,Y,S):-
S = X+Y.

inic(Var) :- make_dialog(D,zbrajanje ),
    get(D, confirm_centered, R),
    send(D,destroy),
    Var = R.

1 ответ

Ваше определение sum/3 предикат не является правильным. =/2 Предикат / оператор выполняет унификацию между терминами. Вы хотите арифметическую оценку, которая использует is/2 предикат / оператор. Попробуйте вместо этого:

..., S is X + Y.
Другие вопросы по тегам