השערת קולאץ בגרסת ה-Prolog

סתם כי רצינו לבדוק את זה וכי רציתי בעצמי לבדוק כמה מסובך יהיה לכתוב דבר כזה ב-Prolog (ממש לא מסובך, בדיוק כמו שחשבתי), אז כתבתי פרדיקט שמבצע את החישוב הזה ב-Prolog.

הנה הקובץ. וצריך מפרש Prolog בשביל להריץ אותו.


Posted in IT, No Category, Programming by with 7 comments.

Comments

  • עודד says:

    וואו – פרולוג. לא נגעתי בפרולוג מאז כיתה ח או משהו כזה.
    סתם בשביל הקטע, הנה אותה רקורסיה ב-Javascript:
    function(n){if(n==1)return1;if(n%2==0)return argument.callee(n/2);return arguments.callee(n*3+1);}

  • Eran says:

    לא נראה לי שזה מדפיס. הקטע הוא גם להראות את כל הדרך.

    • עודד says:

      אה. הוסף “document.writeln” במקומות הנכונים. היתרון – עובד על כל דפדפן :-)

  • Eran says:

    argument.calee קורא לפונקציה המכילה שוב?

    • עודד says:

      חיובי: arguments.callee זה הפניה לפונקציה עצמה.

      לדוגמה, תוכנית שמדפיסה את עצמה (יש לקונספט הזה שם מצחיק שאני לא זוכר) זה קל מאוד ב-Javascript:

      function(){
      document.writeln(arguments.callee.toString());
      }

  • Eran says:

    מגניב. וזה נקרא Quine. זאת אחת החידות האהובות על אנשים שמנסים לבדוק אם אתה יודע לתכנת טוב.

Pingbacks & Trackbacks