2011-03-23 18 views
5

मैं ज्यादातर जावा डेवलपर हूं, यह वह जगह है जहां मुझे सबसे अधिक अनुभव हुआ है। मैं अपने कोडिंग कौशल में सुधार करना चाहता हूं इसलिए मैं एक कार्यात्मक भाषा सीखने की सोच रहा हूं।सीखना कार्यात्मक प्रोग्रामिंग

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

क्या आप कार्यात्मक प्रोग्रामिंग पर अपने पहले गंभीर रूप से देखने के लिए एक भाषा/मंच को पुनः प्राप्त कर सकते हैं?

उत्तर

8

ईमानदार होने के लिए, यह परिप्रेक्ष्य में एक बड़ी छलांग है जो एक कार्यात्मक भाषा को ऐसे लाभ सीखने में मदद करता है। मैं "शुद्ध" कार्यात्मक भाषा Haskell के साथ गहरे छोर में गोताखोरी कहूंगा।

पुस्तकें Real World Haskell और The Haskell School of Expression महान परिचय हैं।

+0

मूल प्रश्न का उत्तर नहीं है, लेकिन अभी भी "गहरे छोर में गोता लगाने" के लिए +1 है। –

+1

एक और महान साइट जो फंक्शनल प्रोग्रामिंग के विचारों में से एक को आसान बनाती है वह है "ग्रेटर गुड फॉर यू हास्केल": http://learnyouahaskell.com/chapters – chaotic3quilibrium

2

स्कैला जावा और जेवीएम के साथ दिमाग में डिजाइन किया गया था। शुरू करने के लिए एक अच्छी जगह की तरह लगता है।

official web site

1

FunctionalJava जावा में कार्यात्मक प्रोग्रामिंग शुरू करने के लिए सबसे अच्छा ज्ञात पुस्तकालय है।

0

यदि आपके पास कोई पुस्तक पढ़ने का समय है, तो कृपया "प्रभावी जावा" आज़माएं। यह डेवलपर्स के लिए एक बहुत अच्छी किताब है।

+0

मैं इस उत्तर से सहमत हूं। मैं अब ब्लॉच की किताब में वर्षों से विचारों का उपयोग कर रहा हूं जिसके परिणामस्वरूप मेरे जावा कोड ने हर जगह अपरिवर्तनीयता का उपयोग करके दृढ़ता से उपयोग किया है। इस एकल विचार ने कार्यात्मक प्रोग्रामिंग प्रतिमान की दिशा में अधिक सोचने के लिए मेरे दिमाग को काफी हद तक स्थानांतरित कर दिया। और अब मुझे स्कैला सीखने में काफी कमी आई है। – chaotic3quilibrium

7

स्कैला आज़माएं। यह पूरी तरह से एक कार्यात्मक प्रोग्रामिंग भाषा नहीं है, लेकिन यह आपके टूलबॉक्स में सही है। Learning Scala देखें।

एक और विकल्प Clojure हो सकता है। वह भी शुद्ध एफपी नहीं है, लेकिन लिस्प बोली के रूप में यह कई प्रासंगिक विशेषताओं को प्रदान करता है।

+0

अगर मैं हास्केल को बहुत छलांग लगाता हूं तो मैं स्केल की कोशिश करूंगा :) धन्यवाद! – JMM

0

कई संभावनाएं। स्कैला JVM पर चलता है, इसलिए आप कई चीजों के लिए जावा लाइब्रेरी का उपयोग कर सकते हैं। मैं एक प्रशंसक नहीं हूं, यह बहुत जटिल है, सीखने के लिए बहुत सारे वाक्यविन्यास हैं।

योजना एफपी सीखने के लिए तर्कसंगत रूप से सबसे अच्छी भाषा है, क्योंकि आप 30 मिनट में वाक्यविन्यास सीख सकते हैं।

आप जावास्क्रिप्ट जैसी संकर भाषाओं को भी देख सकते हैं, जिसमें एक कार्यात्मक भाषा (सबसे महत्वपूर्ण रूप से, बंद) के कुछ पहलू भी हैं, फिर भी प्रक्रियात्मक परंपरा वाक्यविन्यास रखें।

+0

मैं तर्क दूंगा कि आखिरकार, योजना कम से कम मेरे लिए स्कैला की तुलना में सीखना मुश्किल हो जाती है। पहली बार सीखने के दौरान सभी स्कैला का उपयोग करने का प्रयास करना जटिल है। यह एक शानदार रूप से जटिल और परिष्कृत भाषा है। हालांकि, अगर कोई "अर्धविराम के बिना जावा" मोड में स्कैला का उपयोग करता है और फिर नई स्कैला वर्धित शक्तियों को सीखने के लिए केवल आकार के टुकड़े लेता है, तो स्कैला बिल्कुल जटिल नहीं है। और वास्तव में, यह _pragmatic_ (यानी अपूर्ण) कार्यात्मक प्रोग्रामिंग की ओर छोटे प्राप्त करने योग्य लीप बनाने के लिए एक कुशल जावा डेवलपर के लिए बिल्कुल सही है। – chaotic3quilibrium

0

जावा का एक नया प्रोग्रामर के रूप में, आप बेहतर जावा क्षेत्र के समारोह चीजें देखना चाहते हैं, प्रभावी जावा की तरह, * जावा की आधिकारिक एपीआई * और कई कई तरह से others.By, मैं जहाजों की किताब की तरह है ।

0

चूंकि आप एक कार्यात्मक भाषा सीखने में बहुत रुचि रखते हैं, तो मैं ओकम्ल (उद्देश्य कैमल) का सुझाव दूंगा। मैं आपको कार्यात्मक प्रोग्रामिंग और लैम्ब्डा कैलकुस सीखने के लिए एक अच्छी किताब का सुझाव दे सकता हूं।

बेंजामिन सी पिएर्स द्वारा प्रकार और प्रोग्रामिंग भाषाएं।
http://www.cis.upenn.edu/~bcpierce/tapl/

3

अभी तक एक कोशिश करें। यह jvm

पर एक उन्नत एमएल बोली है, यह शुद्ध कार्यात्मक है, जावा के साथ अच्छा एकीकृत करता है, स्थिर रूप से टाइप किया जाता है और स्केल से कहीं अधिक सरल होता है। एक सरल प्रकार-syste है, लेकिन पूर्ण प्रकार-अनुमान के साथ।

http://mth.github.com/yeti/

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