আমি অষ্টাভে ফাংশনাল প্রোগ্রামিং পছন্দ করি, তবে এটি অনুশীলনের বদলে অযৌক্তিক। আমি বেনামে পুনরাবৃত্তি ফাংশন সংজ্ঞায়নের সবচেয়ে সংক্ষিপ্ততম উপায় সম্পর্কে ভাবছি।
আমার কিছু ধারণাগুলি রয়েছে তবে আমি ভাবছি যে এই ধারণাগুলি আরও সংক্ষিপ্ত করার জন্য (বা সমানভাবে সংক্ষিপ্ত তবে আরও বহুমুখী) তৈরি করার কোনও উপায় আছে কি না। এই প্রশ্নের খাতিরে, আসুন পুনরাবৃত্তভাবে শূন্যে গণনা করা যাক (কেবলমাত্র পেডলোডটি যতটা সম্ভব সহজ করে রাখা)।
যদি আমার যুক্তি সঠিক হয় তবে নীচের উদাহরণগুলিতে আমি যে পরিবর্তনশীল নামগুলি ব্যবহার করেছি সেগুলির কোনওটিরই ওভারল্যাপ হওয়া উচিত নয়। পছন্দসই ফাংশনটি q(n)
যা সর্বদা শূন্যের দিকে ফিরে আসে। i
একটি কাউন্টার ভেরিয়েবল হিসাবে ব্যবহৃত হয়, f
এটি পুনরাবৃত্তির কাজ যা আমি g
স্থানীয় স্কোপগুলিতে ডেকেছি f
।
44 বাইট, "ইনলাইন সংজ্ঞা f
"
q=@(n)(f=@(g,i){@()g(g,i-1),i}{~i+1}())(f,n)
44 বাইট, "যুক্তি তালিকার সংজ্ঞা f
"
q=@(n,f=@(g,i){@()g(g,i-1),i}{~i+1}())f(f,n)
44 বাইট, "পৃথক সংজ্ঞা f
"
f=@(i,g){@()g(i-1,g),i}{~i+1}();q=@(n)f(n,f)
41 বাইট, "রিটার্ন মান হিসাবে পছন্দসই ফাংশন"
f=@(g)@(n){@()g(g)(n-1),n}{~n+1}();q=f(f)
বর্তমান 'বিজয়ী' flawr দ্বারা এই উত্তর দ্বারা অনুপ্রাণিত । তবে এটি করার বিভিন্ন উপায়ের বৃহত পরিসীমা দেওয়া, সম্ভবত কেউ পদ্ধতির সংক্ষিপ্ততর সংমিশ্রণ সম্পর্কে ভাবতে পারেন।
লক্ষ্যটি অবশ্যই এটি একটি "পূর্ণ" ফাংশনের জন্য 39 বাইটের নিচে পাওয়া, এটি অনলাইনে চেষ্টা করে দেখুন!