संक्षिप्त जवाब:
लोगों को बनाने वाले तत्वों में से एक यह कहता है कि कार्यात्मक प्रोग्रामिंग कोड को पढ़ना मुश्किल है, यह अधिक कॉम्पैक्ट सिंटैक्स को वरीयता देता है।
लंबा जवाब:
कार्यात्मक प्रोग्रामिंग स्वयं पढ़ने योग्य या अपठनीय नहीं हो सकती है, क्योंकि यह एक प्रतिमान है, न कि कोड लिखने की शैली। उदाहरण के लिए C # में, कार्यात्मक प्रोग्रामिंग जैसा दिखता है:
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)));
और जावा, C # या समान भाषाओं में पर्याप्त अनुभव वाले किसी भी व्यक्ति द्वारा पठनीय माना जाएगा।
दूसरी ओर, भाषा सिंटैक्स, लोकप्रिय ओओपी भाषाओं की तुलना में कई कार्यात्मक भाषाओं (हास्केल और एफ # सहित) के लिए अधिक कॉम्पैक्ट है, जो सादे अंग्रेजी में शब्द के बजाय प्रतीकों को वरीयता देते हैं।
यह एफपी के बाहर की भाषाओं पर भी लागू होता है। यदि आप लोकप्रिय ओओपी भाषाओं की तुलना कुछ कम लोकप्रिय से करते हैं जो अधिक अंग्रेजी शब्दों का उपयोग करते हैं, तो अंतिम लोगों को उनके प्रोग्रामिंग अनुभव वाले लोगों के लिए समझना आसान होगा।
की तुलना करें:
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;
जब छोटे वाक्यविन्यास बेहतर होते हैं?
जबकि अधिक क्रिया सिंटेक्स एक शुरुआत के लिए समझना आसान है, और अधिक कॉम्पैक्ट सिंटैक्स अनुभवी डेवलपर्स के लिए आसान है। शॉर्टर कोड का मतलब टाइप करने के लिए कम वर्ण हैं, जिसका अर्थ है अधिक उत्पादकता।
विशेष रूप से, यह वास्तव में एक व्यक्ति को कुछ इंगित करने के लिए एक कीवर्ड टाइप करने के लिए मजबूर करने का कोई मतलब नहीं है जो वाक्यविन्यास से छूट सकता है।
उदाहरण:
PHP में आपको function
प्रत्येक फ़ंक्शन या विधि से पहले टाइप करना होगा, ऐसा करने के लिए कोई विशेष कारण नहीं है।
Ada ने मुझे हमेशा बहुत सारे अंग्रेजी शब्दों को टाइप करने के लिए डेवलपर्स को मजबूर करने के लिए भयभीत किया, खासकर जब से ऑटो-पूर्ण के साथ कोई सही आईडीई नहीं है। मैंने हाल ही में Ada का उपयोग नहीं किया है और उनका आधिकारिक ट्यूटोरियल नीचे है, इसलिए मैं एक उदाहरण नहीं दे सकता; यदि किसी के पास एक उदाहरण है, तो मेरे उत्तर को संशोधित करने के लिए स्वतंत्र महसूस करें।
वाक्य रचना 1..n
, कई एफपी (और Matlab) में इस्तेमाल किया, द्वारा प्रतिस्थापित किया जा सकता है between 1, n
या between 1 and n
या between (1, n)
। between
कीवर्ड यह बहुत आसान है लोग हैं, जो भाषा वाक्य रचना से परिचित नहीं हैं, लेकिन फिर भी, दो डॉट्स टाइप करने के लिए बहुत तेजी से कर रहे हैं के लिए समझने के लिए बनाता है।