সংক্ষিপ্ত উত্তর:
যে উপাদানগুলিকে লোকেরা বলে যে ফাংশনাল প্রোগ্রামিং কোডটি পড়া মুশকিল তা হ'ল এটি আরও কমপ্যাক্ট সিনট্যাক্সকে অগ্রাধিকার দেয়।
দীর্ঘ উত্তর:
কার্যকরী প্রোগ্রামিং নিজেই পঠনযোগ্য বা অপঠনযোগ্য হতে পারে না, কারণ এটি একটি দৃষ্টান্ত, লেখার কোডের স্টাইল নয়। সি # তে উদাহরণস্বরূপ, কার্যকরী প্রোগ্রামিং দেখে মনে হচ্ছে:
return this.Data.Products
.Where(c => c.IsEnabled)
.GroupBy(c => c.Category)
.Select(c => new PricesPerCategory(category: c.Key, minimum: c.Min(d => d.Price), maximum: c.Max(d => d.Price)));
এবং জাভা, সি # বা অনুরূপ ভাষাগুলিতে পর্যাপ্ত অভিজ্ঞতা সহ যে কোনও ব্যক্তির দ্বারা পঠনযোগ্য বলে বিবেচিত হবে।
অন্যদিকে, ভাষা সিনট্যাক্স জনপ্রিয় ওওপি ভাষাগুলির তুলনায় অনেক কার্যকরী ভাষার জন্য (হাস্কেল এবং এফ # সহ) আরও কমপ্যাক্ট, সরল ইংরেজিতে শব্দের চেয়ে প্রতীককে অগ্রাধিকার দেয়।
এটি এফপির বাইরের ভাষাগুলিতেও প্রযোজ্য। আপনি যদি জনপ্রিয় ওওপি ভাষাগুলিকে এমন কিছু কম জনপ্রিয়ের সাথে তুলনা করেন যা আরও বেশি ইংরেজি শব্দ ব্যবহার করে থাকে, তবে শেষেরগুলিতে কোন প্রোগ্রামিংয়ের অভিজ্ঞতা নেই তাদের পক্ষে বোঝা সহজ হবে।
তুলনা করা:
public void IsWithinRanges<T>(T number, param Range<T>[] ranges) where T : INumeric
{
foreach (var range in ranges)
{
if (number >= range.Left && number <= range.Right)
{
return true;
}
}
return false;
}
প্রতি:
public function void IsWithinRanges
with parameters T number, param array of (Range of T) ranges
using generic type T
given that T implements INumeric
{
for each (var range in ranges)
{
if (number is from range.Left to range.Right)
{
return true;
}
}
return false;
}
একই পথে:
var a = ((b - c) in 1..n) ? d : 0;
একটি কাল্পনিক ভাষায় প্রকাশ করা যেতে পারে:
define variable a being equal to d if (b minus c) is between 1 and n or 0 otherwise;
খাটো সিনট্যাক্স কখন ভাল হয়?
প্রাথমিকের জন্য আরও ভার্বোজ সিনট্যাক্স বোঝা সহজ হলেও অভিজ্ঞ বিকাশকারীদের জন্য আরও কমপ্যাক্ট সিনট্যাক্স সহজ। সংক্ষিপ্ত কোড মানে টাইপ করার জন্য কম অক্ষর, যার অর্থ বেশি উত্পাদনশীলতা।
বিশেষত, সিনট্যাক্স থেকে কেটে নেওয়া যেতে পারে এমন কোনও কিছু নির্দেশ করার জন্য কোনও ব্যক্তিকে কীওয়ার্ড টাইপ করার জন্য জোর করা উচিত তা সত্য নয়।
উদাহরণ:
পিএইচপি-তে আপনাকে function
প্রতিটি ক্রিয়া বা পদ্ধতির আগে টাইপ করতে হবে, এটি করার কোনও নির্দিষ্ট কারণ নেই।
অ্যাডা বরাবরই আমাকে বিকাশ করেছিল বিকাশকারীদের প্রচুর ইংরেজি শব্দ টাইপ করার জন্য, বিশেষত যেহেতু স্বয়ংক্রিয়ভাবে সমাপ্তির কোনও সঠিক আইডিই নেই। আমি সম্প্রতি অ্যাডাকে ব্যবহার করি নি এবং তাদের অফিসিয়াল টিউটোরিয়ালটি ডাউন আছে তাই আমি উদাহরণ দিতে পারি না; কারও যদি উদাহরণ থাকে তবে নির্দ্বিধায় আমার উত্তরটি সংশোধন করুন।
সিনট্যাক্স 1..n
অনেক FP (এবং মতলব) ব্যবহৃত দ্বারা প্রতিস্থাপিত করা যেতে পারে between 1, n
বা between 1 and n
বা between (1, n)
। কী- between
ওয়ার্ডটি ভাষাগত বাক্য গঠনের সাথে পরিচিত নয় এমন লোকদের পক্ষে এটি বোঝার পক্ষে আরও সহজ করে তোলে, তবে এখনও, দুটি বিন্দু টাইপ করতে খুব দ্রুত are