2013-02-06 11 views
19

मैंने एफ # पर किताबें पढ़ना समाप्त कर दिया है और मैंने पुस्तक में अधिकांश अभ्यास किए हैं जो कि मूलभूत थे। अब मैं सामान्य रूप से भाषा और कार्यात्मक प्रोग्रामिंग अवधारणाओं के साथ अपने कौशल को बेहतर बनाने के लिए और अधिक उन्नत अभ्यास की तलाश में हूं।एफ # उन्नत अभ्यास

क्या कोई ऐसी जगह या पुस्तक है जहां मैं भाषा सुविधाओं को जानने के लिए विशेष रूप से डिज़ाइन किए गए अभ्यासों के साथ F # का अभ्यास कर सकता हूं? अभी मैं केवल प्रारंभिक सामान या सामान्य प्रोग्रामिंग समस्याओं की वेबसाइटों (उदाहरण के लिए प्रोजेक्ट यूलर) ढूंढने में कामयाब रहा हूं।

मेरा लक्ष्य वास्तव में सीखना है कि कैसे एक कार्यात्मक तरीके से सोचना है और पैटर्न मिलान, आंशिक रूप से लागू फ़ंक्शन, monads/वर्कफ़्लोज़, पूंछ रिकर्सन आदि जैसे चीजों में उपयोग करना है। मैं सीखना चाहता हूं कि कार्यात्मक संरचनाओं का उपयोग करके समस्याओं को कैसे हल किया जाए।

मुझे किसी भी अच्छे अभ्यास में रुचि भी होगी जो अन्य कार्यात्मक प्रोग्रामिंग भाषाओं (जैसे हास्केल) के लिए डिज़ाइन की गई थी।

+1

ठीक है, वे विशेष रूप से डिज़ाइन किए गए अभ्यास हैं, लेकिन आप कोशिश करने से भी बदतर हो सकते हैं [http://stackoverflow.com/questions/tagged/f%23) :) – Benjol

+1

आप किसी अन्य प्रश्न में F # codebases की तलाश में थे मैं फोक और टिकस्पेक को विचार के लिए महान भोजन के रूप में सुझाव देता हूं।पैकेट भी एक लायक है, और यदि आप कुछ आसान खोज रहे हैं, ज़ीरोटोइन, फनडोमेन/FsUno.Prod दिलचस्प हो सकता है। –

+0

धन्यवाद, (आश्चर्यजनक रूप से मुझे यह क्यू नहीं मिल रहा है, ऐसा लगता है कि इसे हटा दिया गया था: /) – foobarcode

उत्तर

18

यदि आप हाथ से अनुभव के माध्यम से सीखने में विश्वास करते हैं, तो Project Euler problems आपके लिए अभ्यास हो सकता है। वे कार्यात्मक प्रोग्रामिंग तक सीमित नहीं हैं लेकिन उनकी गणितीय प्रकृति एफ # और अन्य कार्यात्मक भाषाओं के लिए उपयुक्त है। Yet Another Project Euler Series एफ # में प्रोजेक्ट यूलर के साथ शुरू करने के लिए एक अच्छा संसाधन है।

मैं 99 problems के माध्यम से प्रोलॉग सीखता था, लेकिन मैंने लोगों को उनके माध्यम से लिस्प, हास्केल, ओकैम, आदि भी सीख लिया। मुझे लगता है कि ये अभ्यास एफ # सीखने के लिए उपयोगी संसाधन हैं। वे अच्छी तरह से डिजाइन की गई समस्याएं हैं। पहले कुछ आपको सूचियों (एफ # में मूल डेटा संरचना) के साथ काम करने के लिए सिखाते हैं। तर्क, पेड़ और ग्राफ पर अधिक उन्नत समस्याएं उन्नत एफ # सुविधाओं का पता लगाने के अच्छे अवसर हैं। यदि आपको संदर्भ के लिए आवश्यकता हो तो OCaml और F# में समाधान के सेट यहां दिए गए हैं।

+0

99 समस्याएं बिल्कुल व्यायाम के प्रकार हैं जिन्हें मैं ढूंढ रहा था! मैंने समाधानों का एक एफ # संस्करण भी ढूंढने में कामयाब रहा है: http://fssnip.net/tags/Ninety-Nine+F%23+Problems – foobarcode

+0

मुझे लगता है कि मैंने अपने उत्तर में समाधान का एक ही सेट दिया https: // github.com/paks/99-FSharp- समस्याएं। मैं गीथूब पसंद करता हूं क्योंकि यह कई फाइलों के लिए अधिक व्यवस्थित है। – pad

+0

हाँ आप सही हैं मैं आपके द्वारा पोस्ट की गई 99 समस्याओं के लिंक पर क्लिक करने के लिए थोड़ा उत्सुक था और आपके बाकी उत्तर की जांच करना भूल गया;) – foobarcode

5

tryfsharp.org एफ # सीखने के लिए एक महान साइट है। कौशल स्तर और समस्या डोमेन द्वारा ट्यूटोरियल टूट जाते हैं। यह वही हो सकता है जो आप खोज रहे हैं।

+0

आपके उत्तर के लिए धन्यवाद, मैं पहले से ही tryfsharp.org के माध्यम से रहा हूं। उदाहरण के लिए भाषा के पहले परिचय के लिए अच्छे उदाहरण हैं, लेकिन मैं अधिक उन्नत चीजों की तलाश में था। – foobarcode

11

मुझे पहली 50 Project Euler समस्याओं से गुजरकर शुरू किया गया। यह एक महान प्रारंभिक सीखने का अनुभव था।

स्टैक ओवरफ्लो एफ # टैग पर सक्रिय रूप से भाग लेने के तुरंत बाद। दूसरों द्वारा प्रदान किए गए उत्तरों को देखते हुए, और अपने स्वयं के उत्तरों का शोध करना बहुत ही शैक्षिक था (आप जानते हैं कि वे शिक्षण द्वारा सीखने के बारे में क्या कहते हैं, यह सच है)।

तब मेरा सबसे बड़ा सीखने का अनुभव एफ # में ओपन सोर्स प्रोजेक्ट्स पर काम से आया। अर्थात् FsEye और Unquote। उन दोनों विचारों में एफ # के साथ अपने अनुभव पर प्रतिबिंबित होने और एफ # पारिस्थितिकी तंत्र को समृद्ध करने के अवसरों को देखने के लिए आया था। एफएसईई के मामले में, यह एफएसआई अनुभव को बढ़ा रहा था। Unquote के मामले में, यह एक अद्वितीय एफ # सुविधा का शोषण कर रहा था। गंभीर परियोजनाओं पर अनुभव करके ये दो सीखने वास्तव में मुझे एफ # में गहरी समझ और कौशल के बिंदु पर लाए।

+0

FsEye वास्तव में मीठा है, साझा करने के लिए धन्यवाद। – foobarcode

+0

ओपन-सोर्स सलाह से सहमत हैं। प्रोजेक्ट यूलर की समस्याएं बहुत अच्छी हैं, लेकिन वे थोड़ी "संकीर्ण" हैं - एक पूर्ण आवेदन के साथ काम कर रहे हैं और संघर्ष कर रहे हैं, जहां चीजें वास्तव में मेरे लिए क्लिक करना शुरू कर दीं। मेरी पहली एफ # लाइब्रेरी एक बड़ी शिक्षा थी, और मैं वर्तमान में पाइथन पुस्तक से F # तक मशीन लर्निंग एल्गोरिदम को परिवर्तित कर रहा हूं, जिसे मुझे बहुत ही निर्देशक मिला। इसके अलावा, मुझे इन एल्गोरिदम की आवश्यकता है :) – Mathias

1

HackerRank आपको एल्गोरिदमिक चुनौतियों के साथ प्रदान करता है। functional programming पर समर्पित एक पूरा अनुभाग है और जब आप कोई समाधान बनाते हैं तो आप अपनी पसंद की भाषा के रूप में F # का चयन कर सकते हैं।

कार्यात्मक प्रोग्रामिंग के भीतर आप विभिन्न कार्य समूहों के बीच चयन कर सकते हैं: रिकर्सन, कार्यात्मक संरचनाकार, पार्सर्स, कुछ नाम।