+ এর মতো কোনও সাধারণ ক্রিয়াকলাপটি ব্যবহার করার সময়, আপনি কোনটি ব্যবহার করেন তা সত্যিই গুরুত্বপূর্ণ নয়।
সাধারণভাবে, ধারণাটি হ'ল এটি reduce
একটি জমে থাকা অপারেশন। আপনি আপনার সঞ্চিত ফাংশনে বর্তমান জমে থাকা মান এবং একটি নতুন মান উপস্থাপন করেন ফাংশনটির ফলাফলটি পরবর্তী পুনরাবৃত্তির জন্য সম্মিলিত মান। সুতরাং, আপনার পুনরাবৃত্তিগুলি দেখতে দেখতে:
cum-val[i+1] = F( cum-val[i], input-val[i] ) ; please forgive the java-like syntax!
প্রয়োগের জন্য, ধারণাটি হ'ল আপনি বেশ কয়েকটি স্কেলার আর্গুমেন্টের প্রত্যাশা করে একটি ফাংশন কল করার চেষ্টা করছেন, তবে সেগুলি বর্তমানে সংগ্রহে রয়েছে এবং এগুলি টেনে আনা দরকার। সুতরাং, পরিবর্তে বলার অপেক্ষা রাখে:
vals = [ val1 val2 val3 ]
(some-fn (vals 0) (vals 1) (vals 2))
আমরা বলতে পারেন:
(apply some-fn vals)
এবং এটি এর সমতুল্য রূপান্তরিত হয়:
(some-fn val1 val2 val3)
সুতরাং, "প্রয়োগ" ব্যবহারটি ক্রমের চারপাশে "প্রথম বন্ধনীর অপসারণ" এর মতো।
sum
হেস্কেলের মতো বিল্ট-ইন ফাংশন অন্তর্ভুক্ত করবেন না ? দেখতে বেশ সাধারণ একটি অপারেশন বলে মনে হচ্ছে।