হিমায়িত / 2 এর অপ্রত্যাশিত আচরণ


11

আমি ঘোরাফেরা পূর্বাভাস freeze/2এবং সাথে খেলা ছিল frozen/2:

?- freeze(X,a=a), frozen(X,Goal).
?- freeze(X,a=a), freeze(Y,b=b), X=Y, frozen(X,Goal).

(x86_64 এর জন্য 4.5.1 সংস্করণ) এই উত্তরগুলি দিয়েছে:

| ? - হিম (এক্স, এ = ক), হিমশীতল (এক্স, লক্ষ্য)
লক্ষ্য = অগ্রণী: হিমায়িত (এক্স, ব্যবহারকারী: (a = a)) ,
প্রোলোগ: ফ্রিজ (এক্স, ইউজার: (এ = এ))? ;
না
| ? - হিম (এক্স, এ = ক), ফ্রিজ (ওয়াই, বি = বি), এক্স = ওয়াই, হিমায়িত (এক্স, লক্ষ্য)
Y = X,
লক্ষ্য = (ব্যবহারকারী: (a = a), প্রোলগ: হিমশীতল (এক্স, ব্যবহারকারী: (খ = বি))) ,
Prolog: নিশ্চল (x, ব্যবহারকারী: (ক একটি =)),
প্রোলোগ: ফ্রিজ (এক্স, ইউজার: (বি = বি))? ;
না

এখন আর আশা করিনি!Goal = prolog:freeze(X,user:(a=a))

আমি যা প্রত্যাশা করেছি তা প্রোলগ সংস্করণ ৮.০.৩ দেওয়া উত্তরগুলির মতো :

? - হিম (এক্স, এ = ক), হিমশীতল (এক্স, লক্ষ্য)
লক্ষ্য = ব্যবহারকারী: (a = a) ,
হিম (এক্স, এ = ক)।
? - হিম (এক্স, এ = ক), ফ্রিজ (ওয়াই, বি = বি), এক্স = ওয়াই, হিমায়িত (এক্স, লক্ষ্য)
এক্স = ওয়াই,
লক্ষ্য = (ব্যবহারকারী: (a = ক), ব্যবহারকারী: (খ = খ)) ,
হিম (Y, a = a),
হিম (Y, b = b)।

তর্কযুক্তভাবে, এসআইসিস্টাসের উত্তর এবং এসডাব্লুআই উত্তর দুটিই সঠিক ...

তবে এসআইসিস্টাসের দেওয়া কিছুটা অদ্ভুত উত্তর (গুলি) দেওয়ার কি আরও গভীর কারণ আছে?


1
সিকস্টাসের এএআইএফআইকে "শেষ ব্যর্থতা" মাস্ক করার কার্যকারিতা বাস্তবায়িত হয় না `? ; নো
অ্যান্টন ড্যানিলভ

একটির জন্য, সুস্পষ্ট যোগ্যতা অগ্রাধিকারযোগ্য।
মিথ্যা

1
3.8.5 অবধি এই সমস্যাটির অস্তিত্ব নেই। এটি থেকে 3.8.6 উপস্থিত রয়েছে।
মিথ্যা

@AntonDanilov। ঠিক আছে. তবে আমি আসলে "লক্ষ্য = ..." গা ...় রেখায় পার্থক্য উল্লেখ করছি to
পুনরাবৃত্তি করুন

1
হয়তো @ পারমিল্ডার জবাব দেবে?
ভুয়া

উত্তর:


6

আমি জানি না পার্থক্যের কোনও "গভীর" কারণ আছে কিনা। যেহেতু frozen/2বৈশিষ্ট্যযুক্ত ভেরিয়েবলগুলির একটি সাধারণ ইন্টারফেস তাই এটি বিশেষ ধরণের freeze/2লক্ষ্যগুলি না বুঝায় ।

প্রকৃতপক্ষে, ৪.৪.১ অবধি, এসআইসিস্টাস বিশেষ ক্ষেত্রে freeze/2লক্ষ্যে ব্যর্থ হলেও কখনও কখনও ব্যর্থ হয়েছিল । এজন্য আপনি user:(a=a)প্রথম উপ-লক্ষ্যটির জন্য দেখতে পাচ্ছেন । পরবর্তী প্রকাশে আমরা এটি পরিবর্তন করেছি যাতে ফল পরিবর্তে Goal = (prolog:freeze(X,user:(a=a)),prolog:freeze(X,user:(b=b)))(এবং আমরা আরও কিছু উন্নতিও করেছি frozen/2)।


4,5,1 অবধি এবং 3.8.5 এর পরে
মিথ্যা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.