এফ # শেখার চেষ্টা করছেন তবে ভাঁজ এবং হ্রাসের মধ্যে পার্থক্য করার চেষ্টা করার সময় বিভ্রান্ত হয়ে পড়েন । ভাঁজ একই কাজ করে বলে মনে হচ্ছে তবে অতিরিক্ত প্যারামিটার লাগে। এই দুটি ফাংশন বিদ্যমান থাকার কোনও বৈধ কারণ আছে বা তারা সেখানে বিভিন্ন ব্যাকগ্রাউন্ডের লোকদের থাকার জন্য আছে? (উদাহরণস্বরূপ: সি # তে স্ট্রিং এবং স্ট্রিং)
নমুনা থেকে অনুলিপি কোড স্নিপেট এখানে:
let sumAList list =
List.reduce (fun acc elem -> acc + elem) list
let sumAFoldingList list =
List.fold (fun acc elem -> acc + elem) 0 list
printfn "Are these two the same? %A "
(sumAList [2; 4; 10] = sumAFoldingList [2; 4; 10])
fold
পরিপ্রেক্ষিতে এর reduce
এর সঁচায়ক ধরণ - অধিক যে জটিল fold
তালিকায় কিছু ধরণ হিসাবে একই হতে হবে না!
fold f a l
হিসাবে লেখা যেতে পারেreduce f a::l
।