השערת קולאץ בגרסת ה-Prolog
סתם כי רצינו לבדוק את זה וכי רציתי בעצמי לבדוק כמה מסובך יהיה לכתוב דבר כזה ב-Prolog (ממש לא מסובך, בדיוק כמו שחשבתי), אז כתבתי פרדיקט שמבצע את החישוב הזה ב-Prolog.
הנה הקובץ. וצריך מפרש Prolog בשביל להריץ אותו.
Posted in IT, No Category, Programming by Eran with 7 comments.
Comments
Pingbacks & Trackbacks
-
[…] יודע שרק לפני כמה ימים דיברתי על פרולוג אבל סיימתי את קורס שפות תכנות וזאת התוצאה של העבודה […]
http://www.ynet.co.il/articles/0,7340,L-4088305,00.html
חדשות טובות.
וואו – פרולוג. לא נגעתי בפרולוג מאז כיתה ח או משהו כזה.
סתם בשביל הקטע, הנה אותה רקורסיה ב-Javascript:
function(n){if(n==1)return1;if(n%2==0)return argument.callee(n/2);return arguments.callee(n*3+1);}
לא נראה לי שזה מדפיס. הקטע הוא גם להראות את כל הדרך.
אה. הוסף “document.writeln” במקומות הנכונים. היתרון – עובד על כל דפדפן :-)
argument.calee קורא לפונקציה המכילה שוב?
חיובי: arguments.callee זה הפניה לפונקציה עצמה.
לדוגמה, תוכנית שמדפיסה את עצמה (יש לקונספט הזה שם מצחיק שאני לא זוכר) זה קל מאוד ב-Javascript:
function(){
document.writeln(arguments.callee.toString());
}
מגניב. וזה נקרא Quine. זאת אחת החידות האהובות על אנשים שמנסים לבדוק אם אתה יודע לתכנת טוב.