में गतिशील की घोषणा मैं Prolog में इस कोड है:एक विधेय gprolog
dynamic(player_at/1).
player_at(house).
goto(X) :- retract(player_at(house)), assert(player_at(X)).
लेकिन मैं अभी भी यह त्रुटि प्राप्त:
uncaught exception: error(permission_error(modify,static_procedure,player_at/1),retract/1)
जब मैं गोटो (foo) निष्पादित करें।
मैंने dynamic documentation पढ़ा है, लेकिन मुझे कम से कम gprolog में इसका उपयोग करने का तरीका नहीं पता है। क्या मैं कुछ भूल रहा हूँ?
:- dynamic(player_at/1).
:-
बिना लाइन विधेय dynamic/1
dreefine, बजाय मौजूदा dynamic
विधेय को क्रियान्वित करने के होगा:
अंततः आप पहले से ही अपने कार्यक्रम के परामर्श के दौरान एक अपवाद मिलना चाहिए। यह गतिशील (_) तथ्य की अनुमति नहीं देनी चाहिए। आईएसओ मानक केवल इतना कहता है कि गतिशील एक निर्देश है, लेकिन ज्यादातर प्रस्तावों में यह एक अंतर्निहित भी है, और इस प्रकार इसे एक तथ्य के रूप में नहीं माना जा सकता है। –