ক্রমগুলি গণনা করতে পুনরাবৃত্তি ব্যবহার করে
সাধারণত, ওইআইএস ক্রম চ্যালেঞ্জটি সমাধান করার জন্য তার পৃষ্ঠায় প্রদত্ত সূত্রগুলির একটির প্রয়োজন হবে using এর মধ্যে কিছু জে এবং অন্যদের পক্ষে খুব বেশি খাপ খাইয়ে নেয় না। পুনরাবৃত্তির সূত্রগুলি সোজা-ফরোয়ার্ড, তবে, পুনরাবৃত্তি সহজ নাও হতে পারে। আমি ব্যবহার করতে শুরু করেছি এমন একটি প্যাটার্ন
(s(]f)^:[~]) n
] Gets n
s The first value in the sequence
~ Commute the argument order, n is LHS and s is RHS
[ Gets n
^: Nest n times with an initial argument s
(]f) Compute f s
Returns (f^n) s
s
অনুক্রমের প্রথম মানটি কোথায় , f
এটি একটি ক্রিয়া যা পূর্ববর্তী পদটি দেওয়া পরবর্তী পদটি গণনা করবে, এবং n
আপনি যে শব্দটি গুণতে চান তার শূন্য-ভিত্তিক সূচক। এই পদ্ধতিটি এই সত্যের উপর নির্ভর করে যে কোনও ডায়াডের শক্তি গণনা করার সময়, এলএইচএস একটি নতুন মোনাড গঠনের জন্য ডায়াডের সাথে আবদ্ধ হয় এবং সেই মানদ প্রাথমিক মান অনুসারে বাসা বেঁধে থাকে। পাওয়ার অ্যাডওয়্যার্বকে দেওয়া ডায়াড হুক হয় যেখানে এলএইচএসে (]f)
সূচক n
এবং অনুক্রমের একটি শর্তের মান দেওয়া হয় s
। হুকটি একটি মোনাড হিসাবে প্রয়োগ f
করা হবে s
, এবং তারপরে n
ফলাফলটি ফিরে আসতে অগ্রাহ্য করবে f s
।
স্ট্যান্ডার্ড লাইব্রেরি
কখনও কখনও, আপনি দেখতে পাবেন যে এর স্ট্যান্ডার্ড লাইব্রেরিতে কোনও ক্রিয়াটির জন্য জে সমর্থন করবে । উদাহরণস্বরূপ, বেশিরভাগ বিটওয়াস পূর্ণসংখ্যার ক্রিয়াকলাপগুলি নামগুলিতে আবদ্ধ থাকে যা আদিম কলটি ব্যবহার করার চেয়ে কম।
AND =: (17 b.) NB. it is actually '$:/ :(17 b.)'
তারিখ এবং সময় অন্তর্নির্মিত উপলব্ধ।
রেঞ্জ
আপনার যদি মানগুলির একটি সেট থাকে [a, b, c]
এবং আপনি যদি তাদের পণ্যগুলির উপর ভিত্তি করে একটি পরিসীমা তৈরি করতে চান [0, 1, 2, ..., a*b*c-1]
, তবে সাধারণ পণ্যটি তাদের পণ্যটি সন্ধান করতে হবে এবং তারপরে এমন একটি পরিসীমা তৈরি করবে [:i.*/
যার দাম 6 বাইট হতে পারে । একটি সংক্ষিপ্ত উপায় ,@i.
4 বাইটের জন্য যেহেতু i.
এখনও গণনা করার সময় বহুমাত্রিক অ্যারে গঠন করতে পারে, এবং এটি সমতলকরণের সমতুল্য পরিসীমা তৈরি করবে।
ধারাবাহিকভাবে মুদ্রণ করা হচ্ছে
স্পষ্ট লুপ ব্যতীত কোনও মান মুদ্রণ এবং এটি ব্যবহার অবিরত করার একটি স্বতন্ত্র উপায় হ'ল ([echo)
এক একজাতীয় ক্ষেত্রে। echo
স্ট্যান্ডার্ড লাইব্রেরিতে এমন একটি ক্রিয়া যা দোভাষীতে stdout
ব্যবহৃত একই বিন্যাসে এর বিষয়বস্তু মুদ্রণ করে । হুক তারপর বাম [
ক্রিয়া ব্যবহার করে একই ইনপুট মানটি পাস করে ।
একটি পূর্ণসংখ্যার 10 সংখ্যা
একটি পূর্ণসংখ্যার বেস 10 ডিজিট অর্জন করার স্ট্যান্ডার্ড উপায়টি হ'ল 10#.inv]
8 বাইটের দাম খুব বেশি! বিকল্পটি হ'ল এটিকে একটি স্ট্রিংয়ে রূপান্তর করা এবং এটি 0 র্যাঙ্কে পার্স করা "."0@":
যা বাইট সংরক্ষণ করে, তবে এর চেয়েও ভাল উপায় হ'ল ,.&.":
8 এর পরিবর্তে চূড়ান্ত ব্যয়টি 6 বাইট তৈরির আরেকটি বাইট সংরক্ষণ করে।
GolfScript gets its own way far too often
2019 সালে পড়ার বিষয়ে মজার কিছু আছে