سؤال

أقوم بتطوير خوارزمية في ملف .pl، وفحصها باستخدام الاستعلامات في نافذة الأوامر.أستخدم المتغيرات الديناميكية وأسحب/أؤكد المسندات.وعندما أقوم بتعديل ملف pl والنقر على "إعادة تحميل الملفات المعدلة"، تظهر لي حقائق إضافية لا أريدها.

على سبيل المثال ، في البداية لدي عداد (0).

وأنا أفعل شيئًا ما، أسحب هذا العداد وأؤكده، ويصبح عدادًا (7).ثم ، عندما أقوم بإعادة تحميل ملف PL المعدل ، لدي كل من العداد (0).والعداد (7).

كيف يمكنني منع ذلك وليس لدي سوى العداد (0).في البداية؟

شكرا لك مقدما.

هل كانت مفيدة؟

المحلول

إدراج Genacodicetagpre

في بداية ملفك.عندما تنتهي من الاختبار ، قم بإزالته.

نصائح أخرى

إذا كنت تستخدم هذه الحقائق الديناميكية فقط لتنفيذ العدادات ، فيجب أن تفكر فيما إذا كانت هذه هي أفضل طريقة للقيام بذلك.يؤدي استخدام رمز الترقيم العام ورمز الترميز العام إلى إنشاء رمز بطيء إلى حد ما.

يمكنك إما أن تجعل متغير العداد وسيطًا أصليًا آخر تقوم بتمريره في التعليمات البرمجية (قد تحتاج إلى التمييز بين المدخلات والمخرجات ، لذلك لديك وسيطان إضافيان) ، أو استخدام المتغيرات العامة (وهي ميزات غير منطقية ،رغم ذلك ، وهو أمر محظور في بعض الأحيان).

ذلك يعتمد على النظام الذي تستخدمه.في Yap ، B ، Gnu ، Sicstus ، التوجيه :- dynamic(counter/1). له هذا التأثير.وهذا هو ، فقط الحقائق من الملف موجودة بعد إعادة التحميل.

في SWI، يتم الاحتفاظ بالمسندات الديناميكية كما تصفها.تحتاج إلى إزالتها مباشرة مع retractall/1 الذي يحتفظ بالمعلومات التي تفيد بأن المسند ديناميكي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top