2017-04-07 52 views
7

मुझे सी # में कार्यात्मक प्रोग्रामिंग सिद्धांतों को लागू करके लागू किया गया सिस्टम के डिज़ाइन को कैप्चर करने के लिए कहा गया है। इसके लिए अनौपचारिक अंग्रेजी की बजाय डिजाइन का वर्णन करने के लिए किसी भी तरह के औपचारिकता का उपयोग करना है। इसके अलावा, यूएमएल का उपयोग प्रतिबंधित है।कार्यात्मक प्रतिमान डिजाइन

मैंने इन प्रयोजनों के लिए एफ # का उपयोग करने का प्रयास करना चुना है, लेकिन एफ # का उपयोग करके सब कुछ के पुन: कार्यान्वयन के बिना अमूर्त स्तर को उच्च रखने में कठिनाई हो रही है।

  1. वहाँ किसी भी वास्तु ढांचा/अभ्यास कैसे कार्यात्मक डिजाइन का वर्णन करने के है:

    तो मैं कुछ प्रश्न हैं?

  2. मैं कार्यान्वयन विवरण के बिना विधियों का खुलासा कैसे कर सकता हूं?

  3. एफ # में घटक इंटरफेस कैसे बनाएं?

  4. ओओ में आपके पास आमतौर पर आर्किटेक्चर के लिए अलग-अलग विचार होते हैं (उदाहरण के लिए 4 + 1)। क्या कार्यात्मक डिजाइन के लिए ऐसा कुछ है?

उत्तर

0

1 के लिए: ऐसा नहीं है कि मैं के बारे में पता कर रहा हूँ, लेकिन मैं डेवलपर

2 के लिए के एक वास्तुकला तरह नहीं कर रहा हूँ: नीचे एक तकनीक का उपयोग मैं और की तरह बहुत कुछ है।

let memoize (f : 'K -> 'V) : 'K -> 'V = 
    let dict = Dictionary<'K, 'V>() 
    fun k -> 
    match dict.TryGetValue k with 
    | true , v -> v 
    | false, _ -> 
     let v = f k 
     dict.[k] <- v 
     v 

3 के लिए: आप घटक इंटरफेस से क्या मतलब है?

4: 4 + 1 कार्यात्मक भाषाओं के लिए मान्य होना चाहिए और साथ ही यह भाषा स्वतंत्र भी प्रतीत होता है।

आम तौर पर मुझे उच्च-कार्य कार्यों, डेटा और व्यवहार को अलग करने पर अधिक ध्यान केंद्रित करने के लिए कार्यात्मक डिज़ाइन मिलते हैं, उत्परिवर्तन पर अपरिवर्तनीयता को उठाते हैं और साइड इफेक्ट्स को ऊपर उठाना पसंद करते हैं (आईओ मोनाड इसका एक उदाहरण है)।

1

टीएलडीआर यह सब रचना के बारे में है।

जहां भी आपको एचकेटी (जेनेरिक जेनेरिक के रूप में उनके बारे में सोचना) का उपयोग करने की आवश्यकता है, वह लाइब्रेरी डिज़ाइन के लिए एक बड़ी संपत्ति है, जब आप शुद्ध कार्यात्मक प्रोग्रामिंग के लिए जा रहे हैं तो यह मूल रूप से गो 4 मानसिकता से अलग है, या नया buzzword उद्यम प्रोग्रामिंग के लिए सप्ताह के।

हास्केल सीखें, मोनाड्स, फ़ैक्टर, आवेदक, मोनोइड्स इत्यादि के बारे में जानें (डरो मत कि आपने उन्हें 9 000 बार अब इसे महसूस किए बिना उपयोग किया है) फिर फ्री मोनाड जैसी चीजें देखें, अपना स्क्रैप करें बॉयलर प्लेट, लेंस, टाइपक्लास, और एमटीएल शैली ट्रांसफार्मर और बाद में आप एक बेहतर पुस्तकालय प्रोग्रामर बनेंगे।

संबंधित मुद्दे